如何创建模块化JavaFX11可运行jar/exe?

如何创建模块化JavaFX11可运行jar/exe?,java,javafx,jlink,javafx-11,Java,Javafx,Jlink,Javafx 11,我已成功地遵循(使用maven)中提到的说明 我可以在eclipse中运行它。我还可以使用jlink创建自定义运行时映像。应用程序可以通过生成的启动器运行 现在,我们如何使用jlink生成的精简JRE创建一个可运行的jar/exe?我最近刚刚开始使用Java 11的jlink工具进行实验,并可以提供部分答案。自定义运行时映像的bin目录中的java命令与标准JRE的java类似: /path/to/custom/runtime/image/bin/java-jar myjar.jar 自定义运行

我已成功地遵循(使用maven)中提到的说明

我可以在eclipse中运行它。我还可以使用jlink创建自定义运行时映像。应用程序可以通过生成的启动器运行


现在,我们如何使用jlink生成的精简JRE创建一个可运行的jar/exe?

我最近刚刚开始使用Java 11的
jlink
工具进行实验,并可以提供部分答案。自定义运行时映像的bin目录中的
java
命令与标准JRE的
java
类似:

/path/to/custom/runtime/image/bin/java-jar myjar.jar

自定义运行时映像当然必须包含所有必需的依赖项,我通过使myjar.jar成为模块化的jar并提供开关来确保这一点

--添加模块myjar.jar

使用
jlink
创建自定义运行时映像时。使用附加开关

--启动器mylaunchername=modulename.of.my.jar/mypackage.with.MainClass

直接可执行的二进制文件

/路径/to/custom/runtime/image/bin/mylaunchername

是生成的。在我的Mac电脑上,我创建了一个别名并将其移动到桌面。到目前为止,这与应用程序非常接近,但有以下几点需要注意:

  • 应用程序图标是标准的绿色“exec”
  • 双击此图标将启动一个终端,这在JavaFX应用程序中是不可取的
  • 当然,“应用程序”不是单个文件,而是完整的自定义运行时映像文件夹

如果您已经构建了运行时映像,您可以将它们作为
jmods
共享给使用Java9或更高版本的用户,这应该可以正常工作。我指的是JavaFX本身分发
jmods
.jar
文件供其使用的示例。先生,请在github中上载一个工作示例。您可以提供一个指向工作示例的链接。