tom*_*ver 6 windows java-9 javapackager java-module
环境: Win10、Oracle JDK 9、Eclipse、jlink、javapackager
上下文:我正在尝试生成一个可执行文件,其中包含javapackager
使用 制作的 java 自定义运行时映像jlink,并阅读javapackager 文档。不可安装。
Jlink 创建了一个 zip 文件,其中包含我所有的 java 类文件和封装的资源(这意味着我无法从系统资源管理器访问它们)+ 自定义 jre。它带有一个 .bat 启动器来运行该应用程序。一切正常。
Walkthrow:第一,我发现OpenJDK14 中jpackage有一个OpenJDK 实用程序可以使 java 模块化应用程序可执行,该实用程序仍在开发中。我没有找到任何方法来处理它。后来我研究了 Inno Setup,但它不能满足我的需求(因为我不需要安装程序)后来我发现从 Oracle JDK 8 开始,就有了为每个平台(max、linux、windows..)生成可运行文件的工具。javapackager
我无法使 javapackager 工作。这是我在 Windows cmd 上执行的命令的各种尝试之一。
javapackager
-deploy
-native exe
--add-modules myModule,javafx.graphics,javafx.controls
--module-path "C:\path\to\javafx-jmods;C:\path\to\target\classes;C:\path\to\more\jmods"
-outdir "C:\myApp"
-outfile MyApp
-appclass myPackage.MyApp
-name "MyApp"
Run Code Online (Sandbox Code Playgroud)
使用前面的命令我收到错误:
Error: No application jars foun
Run Code Online (Sandbox Code Playgroud)
因此,我意识到我将 -deploy 命令及其选项与 -createjar 命令及其选项混合在一起。
有人可以解释如何使用 javapackager 生成 .exe 吗?
编辑1
尝试过jpackage(使用jdk 14和Wix安装程序作为依赖项):
jpackage --package-type exe -o outputdir --name myApp --add-modules myapp,javafx.graphics,javafx.controls
--module-path "C:\path\to\some\jmods;C:\path\to\myTarget;C:\path\to\javafx-sdk-11.0.2plugin" -m myapp/App
Run Code Online (Sandbox Code Playgroud)
输出:myApp.1.0.exe。它打开一个 cmd 和一个“安装程序”,但不执行 myApp,因为不包含自定义 java 运行时环境。
像任何 JDK 一样安装 jpackage 提供的 JDK,并将 JAVA_HOME 设置为它。
作为打包的准备工作,我指示 Maven 将项目的所有依赖 jar 文件复制到 installer/input 文件夹中。
然后转到项目的主文件夹并调用
$JAVA_HOME/bin/jpackage \
--name yourAppName \
--output installer/output \
--input installer/input \
--main-jar yourAppMain.jar \
--main-class xxx.yyy.yourAppMainClass
Run Code Online (Sandbox Code Playgroud)
结果现在应该位于安装程序/输出文件夹中。
有关您可以致电的选项的更多详细信息
$JAVA_HOME/bin/jpackage --help
Run Code Online (Sandbox Code Playgroud)
还可以选择将不同的 JDK 与 jpackager 一起使用,但这更高级。
| 归档时间: |
|
| 查看次数: |
11268 次 |
| 最近记录: |