当前位置: 首页 > news >正文

电梯网站建设网站建设工作落实情况

电梯网站建设,网站建设工作落实情况,河南建网站 优帮云,深圳展览设计网站建设前言 在当前多元化开发环境下#xff0c;Java作为一种广泛应用的编程语言#xff0c;其应用部署效率与灵活性的重要性日益凸显。Spring Boot框架以其简洁的配置和强大的功能深受开发者喜爱#xff0c;而JavaFX则为开发者提供了构建丰富桌面客户端应用的能力。然而#xff…前言 在当前多元化开发环境下Java作为一种广泛应用的编程语言其应用部署效率与灵活性的重要性日益凸显。Spring Boot框架以其简洁的配置和强大的功能深受开发者喜爱而JavaFX则为开发者提供了构建丰富桌面客户端应用的能力。然而将Spring Boot后端服务与JavaFX前端界面整合并实现高效部署对许多开发者来说是一项挑战。 GraalVM的出现恰好解决了这一难题。作为Oracle公司推出的一款高性能运行时环境它支持多种语言运行并能将Java应用编译为原生可执行文件从而大大提升了应用的启动速度和资源利用率。通过利用GraalVM的原生镜像生成工具Substrate VM我们可以将Spring Boot应用与JavaFX项目无缝集成并将其打包为独立的、跨平台的可执行程序。 本教程将深入浅出地为您介绍如何详细安装GraalVM以及如何在此基础上将普通的Java项目进行打包以实现高效便捷的应用部署。我们将逐步解析操作步骤助您掌握这一技术提升项目的部署效率和用户体验。 1. 环境搭建 上一篇:GraalVM详细安装及打包springboot、java、javafx使用教程(打包普通JAVA项目篇) 2.项目搭建 1.新建java项目 idea–file—new—project填写好相关信息,选择JDK17 2.完整项目结构 3.导入依赖文件 propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version17/java.versionmaven.compiler.source${java.version}/maven.compiler.sourcemaven.compiler.target${java.version}/maven.compiler.targetjavafx.version17.0.2/javafx.versionjavafx.staticSdk.version21-ea5/javafx.staticSdk.versiongluonfx-maven-plugin.version1.0.18/gluonfx-maven-plugin.versionstart-classcom.star.graalvm.AppStart/start-class/properties依赖 dependenciesdependencygroupIdorg.openjfx/groupIdartifactIdjavafx-controls/artifactIdversion${javafx.version}/version/dependencydependencygroupIdorg.openjfx/groupIdartifactIdjavafx-fxml/artifactIdversion${javafx.version}/version/dependencydependencygroupIdorg.openjfx/groupIdartifactIdjavafx-media/artifactIdversion${javafx.version}/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion3.8.1/versionscopetest/scope/dependency/dependencies导入编译打包插件 buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationrelease${java.version}/release/configuration/pluginplugingroupIdorg.openjfx/groupIdartifactIdjavafx-maven-plugin/artifactIdversion0.0.8/versionconfigurationmainClass${start-class}/mainClass/configuration/pluginplugingroupIdcom.gluonhq/groupIdartifactIdgluonfx-maven-plugin/artifactIdversion${gluonfx-maven-plugin.version}/versionconfiguration!--运行主类--mainClass${start-class}/mainClass!--Java11 静态库的版本Default: 11-ea10--!--javaStaticSdkVersion11-ea10/javaStaticSdkVersion--!--Java17 静态库的版本21-ea5 --javafxStaticSdkVersion${javafx.staticSdk.version}/javafxStaticSdkVersion!-- 允许的资源文件后缀 --resourcesListlist.*\\.properties$/listlist.*\\.yml$/listlist.*\\.dll/list/resourcesList!-- 涉及反射的类 --reflectionListlistcom.star.graalvm.App/listlistcom.star.graalvm.control.HomeControl/list/reflectionListnativeImageArgs!-- “快速构建”模式以减少在开发过程中生成本机可执行文件所需的时间。请注意此模式可能会对峰值性能和生成的可执行文件的大小产生负面影响因此建议仅用于开发目的。 --arg--add-exportsorg.graalvm.nativeimage.builder/com.oracle.svm.core.jdkALL-UNNAMED/arg/nativeImageArgsreleaseConfiguration!-- all targets --!--packageType/packageType--descriptiongraalvm-javafx/descriptionvendorshin/vendorversion${version}/version/releaseConfigurationruntimeArgsarg-Dfile.encodingUTF-8/arg/runtimeArgs/configurationexecutionsexecutiongoalsgoalbuild/goal/goalsphasepackage/phase/execution/executions/plugin/plugins/build4.新建java类 1.启动类 package com.star.graalvm;import com.star.graalvm.conf.AppConfig; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Screen; import javafx.stage.Stage;import java.util.regex.Pattern;/*** create 2023-09* author lstar* description: 主程序*/ public class App extends Application {public static void main(String[] args) {// 解决Linux上编译为native-image时运行错误String osName System.getProperty(os.name, );if (Pattern.matches(Linux.*, osName)) {System.setProperty(prism.forceGPU, true);}AppConfig.init();launch(args);}Overridepublic void init() throws Exception {super.init();// 设置系统屏幕缩放比例try {var scaleX Screen.getScreens().get(0).getOutputScaleX();System.setProperty(glass.win.uiScale, String.valueOf(scaleX));} catch (Exception ignored) {System.setProperty(glass.win.uiScale, 1.0);}}Overridepublic void start(Stage primaryStage) throws Exception {// 加载并创建主场景Parent root FXMLLoader.load(getClass().getResource(/fxml/Home.fxml));Scene scene new Scene(root, AppConfig.stageWidth, AppConfig.stageHeight);// 设置窗口信息primaryStage.setTitle(AppConfig.title);primaryStage.setResizable(AppConfig.stageResizable);primaryStage.getIcons().add(new Image(App.class.getResourceAsStream(AppConfig.icon)));primaryStage.setScene(scene);primaryStage.show();}Overridepublic void stop() throws Exception {System.out.println(stop);super.stop();} } java11以上已经移除了javafx相关组件之前运行启动类是无法运行的 package com.star.graalvm;import javafx.application.Application;/*** create 2023-09* author lstar* description: 启动类*/ public class AppStart {public static void main( String[] args ){Application.launch(App.class);} } 2.视图控制类 package com.star.graalvm.control;import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.stage.FileChooser; import javafx.stage.Window;import java.io.File; import java.util.Arrays;/*** create 2023-09* author lstar* description: 视图控制类*/ public class HomeControl {FXMLpublic Button alterBtn;FXMLpublic Button fileBtn;FXMLpublic TextField fileText;FXMLpublic AnchorPane rootPane;FXMLpublic ImageView imgView;FXMLpublic void initialize() {System.out.println(init);}/*** 文件按钮单击事件*/FXMLpublic void fileBtnClick(MouseEvent actionEvent) {Window window rootPane.getScene().getWindow();FileChooser fc new FileChooser();//设置选择框的左上角标题fc.setTitle(单文件选择);//设置文件初始化打开路径fc.setInitialDirectory(new File(D: File.separator));//设置文件的选择类型fc.getExtensionFilters().addAll(new FileChooser.ExtensionFilter(图片类型, *.jpg, *.png, *.gif),new FileChooser.ExtensionFilter(文本类型, *.txt, *.java, *.doc, *.docx, *.xlx, *.xlsx, *.fxml),new FileChooser.ExtensionFilter(所有类型, *.*));//文件显示框 选择的文件返回一个fileFile file fc.showOpenDialog(window);String fileName file null ? : file.getName();String fileAbsolutePath file null ? : file.getAbsolutePath();if (file ! null) {fileText.setText(文件名: fileName 文件路径: fileAbsolutePath);if(isImageFile(file)){imgView.setImage(new Image(fileAbsolutePath));}}}/*** 判断文件后缀* param file* return*/public static boolean isImageFile(File file) {if (file null || !file.exists()) {return false;}String fileName file.getName();int dotIndex fileName.lastIndexOf(.);if (dotIndex 0 || dotIndex fileName.length() - 1) {// 没有后缀名或者点在文件名末尾都不是图片return false;}String extension fileName.substring(dotIndex 1).toLowerCase(); // 获取小写后缀名return Arrays.asList(jpg, jpeg, png, gif).contains(extension);}/*** 弹出框按钮单击事件*/FXMLpublic void alterBtnClick(MouseEvent actionEvent) {String javaVersion System.getProperty(java.version);String javafxVersion System.getProperty(javafx.version);Alert alert new Alert(Alert.AlertType.INFORMATION);alert.setHeaderText(Hello Graalvm);alert.setContentText(Hello, JavaFX javafxVersion , running on Java javaVersion .);alert.show();}} 3. 应用配置类 package com.star.graalvm.conf;import com.star.graalvm.App;import java.io.IOException; import java.io.InputStream; import java.util.Properties;/*** create 2023-09* author lstar* description: 应用配置文件*/ public class AppConfig {/*** 应用标题*/public static String title JavaFx Test Application;/*** 应用图标*/public static String icon /icon/icon.png;/*** 窗口宽度*/public static int stageWidth 600;/*** 窗口高度*/public static int stageHeight 600;/*** 允许调整窗口尺寸*/public static boolean stageResizable true;public static void init() {try {Properties properties new Properties();InputStream in App.class.getResourceAsStream(app.properties);properties.load(in);title properties.getProperty(title);icon properties.getProperty(icon);stageWidth Integer.parseInt(properties.getProperty(stage.width));stageHeight Integer.parseInt(properties.getProperty(stage.height));stageResizable Boolean.parseBoolean(properties.getProperty(stage.resizable));} catch (IOException e) {e.printStackTrace();}}} app.properties 属性配置文件放在resources目录下 titleGraalVM JavaFx Test Application iconicon/icon.png stage.width600 stage.height600 stage.resizabletrue4.Home.fxml文件 ?xml version1.0 encodingUTF-8??import javafx.scene.control.*? ?import javafx.scene.image.*? ?import javafx.scene.layout.*?AnchorPane fx:idrootPane maxHeight-Infinity maxWidth-Infinity minHeight-Infinity minWidth-Infinity prefHeight600.0 prefWidth600.0 stylesheets../css/Home.css xmlnshttp://javafx.com/javafx/17.0.2-ea xmlns:fxhttp://javafx.com/fxml/1 fx:controllercom.star.graalvm.control.HomeControlchildrenButton fx:idalterBtn layoutX74.0 layoutY112.0 mnemonicParsingfalse onMouseClicked#alterBtnClick prefHeight28.0 prefWidth68.0 text弹窗 /Button fx:idfileBtn layoutX441.0 layoutY112.0 mnemonicParsingfalse onMouseClicked#fileBtnClick prefHeight28.0 prefWidth68.0 text文件选择 /TextField fx:idfileText layoutX86.0 layoutY170.0 prefHeight43.0 prefWidth429.0 promptText文件地址 /ImageView fx:idimgView fitHeight290.0 fitWidth429.0 layoutX89.0 layoutY242.0 pickOnBoundstrue preserveRatiotrue //children /AnchorPane 5.css文件 #rootPane{/*背景颜色*/-fx-background-color: #b6e3c1; }5.示例代码 giteegithub
http://www.pierceye.com/news/805641/

相关文章:

  • 建设本地网站 配置iis百度h5在线制作免费
  • 网站托管服务器做外贸去哪些网站找老外
  • 一个空间可以做几个网站微信公众号 做不了微网站
  • 嘉兴seo外包公司黄骅seo
  • 做网站录入和查询需求网络推广公司口碑
  • 招远专业做网站公司wordpress获取qq昵称 头像
  • 河北网站建设业务服务称赞的项目管理平台
  • 用jsp做的网站首页如何建立一个网站来卖东西
  • 外贸型网站建设的基本流程宣传型网站建设
  • 济南手机网站开发公司贵阳网络推广公司
  • 网站开发需求模板找网络公司做推广费用
  • 网站推广工具推荐广州公关公司招聘
  • 网站搭建平台源码做健身网站开题报告
  • 大芬网站建设樟树网站开发
  • 北京通州个人网站建设哈尔滨建设工程招投标办公室
  • 怎样开个人网站如何做百度免费推广
  • 深圳成品网站超市佛山网站建设机构
  • 江苏 网站建设第一次做网站做后感
  • wordpress翻译公司网站没事网站建设项目规划书
  • 东莞建设年审网站我的世界充钱网站怎么做
  • 太原网站排名系统电子商务市场营销
  • 社区网站开发进度表2018年做网站还能
  • 论企业网站建设的必要性内网网站搭建设
  • 网站建设怎么翻译如何建立自己的网站
  • 2345网址大全热门seo推广排名稳定
  • 网站建设工作有底薪吗360优化大师
  • 门户网站微信服务号建设大型网站建设优化排名
  • 贵州省冶金建设有限公司网站wordpress end_lvl
  • 网站建设的工作职责是什么网站后台显示连接已重置
  • 俱乐部手机网站模板微信公众号个人可以做网站么