windows 如何使用javapackager生成模块化Java应用程序的可执行文件?

35g0bw71  于 2023-11-21  发布在  Windows
关注(0)|答案(1)|浏览(209)

**环境:**Win10、Oracle JDK 9、Eclipse、jlink、javapackager
上下文:我正在尝试用javapackager生成一个可执行文件有一个用jlink制作的java自定义运行时镜像,阅读javapackager文档。不是可安装的。

Jlink创建了一个zip文件,包含了我所有的java类文件和封装的资源(这意味着我不能从系统资源管理器访问它们)+自定义jre。它附带了一个.bat启动器来运行应用程序。一切正常。

**Walkthrow:**1st我发现OpenJDK available from OpenJDK14有一个jpackage实用程序可以使java模块化应用程序可执行,这仍然在开发中。我没有找到任何方法来使用它。后来我调查了Inno Setup,但它不能满足我的需求(因为我不想要安装程序)后来我发现,自从Oracle JDK 8以来,有javapackager工具可以为每个平台(max,Linux,windows..)生成可运行文件。

我无法使javapackager工作。这是我在Windows cmd上执行的命令的各种尝试之一。

  1. javapackager
  2. -deploy
  3. -native exe
  4. --add-modules myModule,javafx.graphics,javafx.controls
  5. --module-path "C:\path\to\javafx-jmods;C:\path\to\target\classes;C:\path\to\more\jmods"
  6. -outdir "C:\myApp"
  7. -outfile MyApp
  8. -appclass myPackage.MyApp
  9. -name "MyApp"

字符串
在前面的命令中,我得到了错误:

  1. Error: No application jars foun


因此,我意识到我将-deploy命令及其选项与-repljar命令及其选项混合在一起。
有人能解释一下如何用javapackager生成.exe吗?

编辑1

尝试jpackage(使用jdk 14,需要Wix installer作为依赖项):

  1. jpackage --package-type exe -o outputdir --name myApp --add-modules myapp,javafx.graphics,javafx.controls
  2. --module-path "C:\path\to\some\jmods;C:\path\to\myTarget;C:\path\to\javafx-sdk-11.0.2plugin" -m myapp/App


输出:myApp.1.0.exe。它打开一个cmd和一个“安装程序”,但不执行myApp,因为没有包含自定义的java运行时环境。

sc4hvdpw

sc4hvdpw1#

像安装任何JDK一样安装jpackage提供的JDK,并将JAVA_HOME设置为它。
作为打包的准备工作,我已经指示Maven将项目的所有依赖jar文件复制到installer/input文件夹中。
然后转到项目的主文件夹并调用

  1. $JAVA_HOME/bin/jpackage \
  2. --name yourAppName \
  3. --output installer/output \
  4. --input installer/input \
  5. --main-jar yourAppMain.jar \
  6. --main-class xxx.yyy.yourAppMainClass

字符串
结果现在应该在installer/output文件夹中。
有关选项的更多详细信息,您可以调用

  1. $JAVA_HOME/bin/jpackage --help


还有一个选项可以使用不同的JDK与jpackager,但这是更高级的。

展开查看全部

相关问题