{"id":15028,"date":"2023-11-30T12:18:27","date_gmt":"2023-11-30T04:18:27","guid":{"rendered":"https:\/\/www.zhidianwl.com\/zhidian\/?p=15028"},"modified":"2023-11-30T12:18:27","modified_gmt":"2023-11-30T04:18:27","slug":"javafx-%e6%89%93%e5%8c%85exe%e6%9c%89%e5%93%aa%e4%ba%9b%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/www.zhidianwl.com\/zhidian\/2023\/15028\/","title":{"rendered":"javafx \u6253\u5305exe\u6709\u54ea\u4e9b\u6ce8\u610f\u4e8b\u9879\uff1f"},"content":{"rendered":"
JavaFX \u6253\u5305 EXE \u6587\u4ef6\u662f\u6307\u5c06 JavaFX \u5f00\u53d1\u7684\u7a0b\u5e8f\u6253\u5305\u6210\u4e00\u4e2a\u53ef\u6267\u884c\u7684 EXE \u6587\u4ef6\uff0c\u5141\u8bb8\u7528\u6237\u5728 Windows \u4e0a\u76f4\u63a5\u53cc\u51fb\u8fd0\u884c\uff0c\u800c\u65e0\u9700\u5b89\u88c5 Java \u8fd0\u884c\u73af\u5883\u3002\u4e3a\u4e86\u5c06 JavaFX \u5e94\u7528\u7a0b\u5e8f\u6253\u5305\u4e3a EXE \u6587\u4ef6\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u51e0\u79cd\u65b9\u6cd5\u3002\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4e24\u79cd\u6700\u5e38\u7528\u7684\u65b9\u6cd5\u4ee5\u53ca\u5b83\u4eec\u7684\u539f\u7406\u3002<\/p>\n
1. \u4f7f\u7528 jpackage \u5de5\u5177<\/p>\n
Java JDK 14 \u53ca\u4ee5\u4e0a\u7248\u672c\u81ea\u5e26\u4e86\u4e00\u4e2a\u540d\u4e3a `jpackage` \u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u5c06 JavaFX \u5e94\u7528\u7a0b\u5e8f\u6253\u5305\u4e3a\u5e73\u53f0\u7279\u5b9a\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u5982 Windows \u4e0a\u7684 `exe` \u6587\u4ef6\u3002<\/p>\n
\u6b65\u9aa4\u5982\u4e0b\uff1a<\/p>\n
1.1. \u5b89\u88c5 Java JDK 14 \u53ca\u4ee5\u4e0a\u7248\u672c\uff0c\u5e76\u786e\u4fdd `JAVA_HOME` \u73af\u5883\u53d8\u91cf\u5df2\u6b63\u786e\u8bbe\u7f6e\u3002<\/p>\n
1.2. \u4e3a JavaFX \u9879\u76ee\u521b\u5efa\u4e00\u4e2a JAR \u6587\u4ef6\uff08\u53ef\u6267\u884c\u7684 JAR \u6587\u4ef6\uff09\u3002\u5177\u4f53\u65b9\u6cd5\u662f\u4f7f\u7528 `javac` \u547d\u4ee4\u7f16\u8bd1\u6e90\u4ee3\u7801\uff0c\u7136\u540e\u4f7f\u7528 `jar` \u547d\u4ee4\u5c06\u7f16\u8bd1\u540e\u7684 `.class` \u6587\u4ef6\u6253\u5305\u4e3a\u4e00\u4e2a `.jar` \u6587\u4ef6\u3002<\/p>\n
1.3. \u4f7f\u7528 jpackage \u5de5\u5177\u5c06 JAR \u6587\u4ef6\u6253\u5305\u4e3a EXE \u6587\u4ef6\u3002\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n
“`<\/p>\n
jpackage –type app-image –name AppName –input inp<\/p>\n
utFolder –output outputFolder –main-jar yourJarFile.jar –main-class your.main.ClassName –java-options “–module-path yourJavaFXLibPath –add-modules javaf\u7f51\u9875exe\u5c01\u88c5<\/a>x.controls,javafx.fxml”<\/p>\n “`<\/p>\n \u5176\u4e2d\uff1a<\/p>\n – `–type` \u53c2\u6570\u6307\u5b9a\u8f93\u51fa\u7c7b\u578b\uff08\u5728\u8fd9\u91cc\u662f `app-image`\uff09\u3002<\/p>\n – `–name` \u53c2\u6570\u6307\u5b9a\u5e94\u7528\u7a0b\u5e8f\u7684\u540d\u79f0\u3002<\/p>\n – `–input` \u53c2\u6570\u6307\u5b9a\u5305\u542b JAR \u6587\u4ef6\u7684\u8f93\u5165\u6587\u4ef6\u5939\u3002<\/p>\n – `–output` \u53c2\u6570\u6307\u5b9a\u8f93\u51fa\u6587\u4ef6\u5939\u3002<\/p>\n – `–main-jar` \u53c2\u6570\u6307\u5b9a\u4e3b JAR \u6587\u4ef6\u3002<\/p>\n – `–main-class` \u53c2\u6570\u6307\u5b9a\u5e94\u7528\u7a0b\u5e8f\u7684\u4e3b\u7c7b\uff08\u5373\u5305\u542b `main` \u65b9\u6cd5\u7684\u7c7b\uff09\u3002<\/p>\n<\/figure>\n<\/p>\n