我正在尝试 java 9-ea (jdk-9+180) 和新的 javapackager 从简单模块创建本机映像,但出现空指针异常。有人知道我是否太早了或者我是否没有使用正确的命令开关来使其工作?jlink 命令工作正常,但 javapackager 却不行。在撰写本文时,我正在使用最新的 jdk-9+180。我已尝试使用-native exe和-native image开关,但出现了相同类型的错误。我也在我的 Mac 上尝试过使用交换机创建本机 dmg -native dmg,但在该平台上出现了相同的错误。我真的很想在这里使用 javapackager 来将构建捆绑到exe/dmg.
编辑 1: 我已经提交了有关此问题的错误报告,现在可以在以下网址中看到该报告:http://bugs.java.com/bugdatabase/view_bug.do ?bug_id=JDK-8186661
我的模块信息.java:
module my.module {
requires javafx.graphics;
requires javafx.fxml;
exports sample;
}
Run Code Online (Sandbox Code Playgroud)
首先,我使用 javapackager 创建一个运行良好的 jar:
C:\Java9Test\target>javapackager -createjar -appclass sample.Main -srcdir classes -outdir . -outfile myjar -v
我已经验证了生成的 jar 结构看起来与正确编译的module-info.class以及其中的其他两个类没有问题。
以下 jlink 命令可以工作并生成可运行的简化运行时映像:
C:\Java9Test\target>jlink --output release\MyTestApp --compress=2 --module-path "myjar.jar;C:\Program Files\Java\jdk-9\jmods" --add-modules my.module
但是,当尝试以下命令以使用 javapackager 创建本机映像时失败:
C:\Java9Test\target>javapackager -deploy …