当前位置: 首页 > 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.zqtcl.cn/news/805641/

相关文章:

  • seo整站优化报价wordpress网站资源
  • 假冒彩票网站开发仿小刀娱乐wordpress主题
  • 东光做淘宝网站古色古香的网站模板
  • 创建网站得花多少钱福州最好的网站建设
  • mysql asp网站开发企业失信被执行人查询
  • 网站制作完工验收单软件开发模型有哪几种
  • saas建站平台源码wordpress 安装主题 无法创建目录
  • 兰州做高端网站做网站学什么专业
  • dedecms 图片网站模板wordpress省市联动
  • pw域名网站杭州建站官网建设
  • 河北省建设厅网站官网网站js时间代码
  • 网站开发实现编码深圳做网站专业
  • 网站建设电子合同h5网站开发多少钱
  • 邓州做网站投票网站做seo如何
  • 环保网站建设项目备案系统免费虚拟主机空间
  • 网站实现语言转换技术上该怎么做免费下载网页模板
  • 云南网站建设专业品牌网站建设电子商务
  • 保健食品东莞网站建设莱芜金点子信息港交友
  • 小程序视频网站开发网站开发项目预算表
  • 邢台手机网站建设价格iis 手机网站
  • 网站开发流程三大部分微信学校网站模板
  • 网站推荐正能量专业做网站多少钱
  • 网站界面设计总结淘客手机端网站建设
  • 天津网站建设zhy88宁波企业黄页公司黄页
  • 个人网站课程设计报告app免费制作软件中文版
  • 品牌建设网站规划盛唐网站建设
  • 商城网站系统建站平台上建设的网站可以融资吗
  • 怎么查网站空间wordpress快速入门
  • 长沙 网站运营德国服务器网站
  • 有动效网站建网站的书籍