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

标签 java javafx jlink javafx-11

我已成功按照 openjfx-docs 中提到的说明进行操作(使用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 并提供开关来确保这一点

--add-modules myjar.jar

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

--launcher mylaunchername=modulename.of.my.jar/mypackage.with.MainClass

直接可执行的二进制文件

/path/to/custom/runtime/image/bin/mylaunchername

已生成。在我的 Mac 上,我创建了一个别名并将其移至桌面。这是我迄今为止所能得到的最接近的应用程序,但有以下注意事项:

  • 应用程序图标是标准的绿色“exec”
  • 双击此图标会启动一个终端,这对于 JavaFX 应用程序来说是不受欢迎的
  • 当然,“应用程序”不是单个文件,而是完整的自定义运行时镜像文件夹。

关于java - 如何创建模块化 JavaFX11 可运行 jar/exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53452477/

相关文章:

javafx - 通过 CSS 将图标添加到 JavaFx 中的 menuItem

java - 单击另一个页面上的按钮时如何将数据添加到 TableView ?

java - getCanonicalHostName 非常慢

java - 将整数打印到文本字段区域

java - JavaFX中是否有一个`strings.xml`文件?

java - 控制已经存在的 ImageJ 实例

spring - Gradle + Spring项目将链接,但不能在IDE中使用gradle运行

Gradle jlink 选项给出访问权限警告

java - 迁移java8到java11 : import com. sun.security.auth.module.NTSystem

Java XPath 表达式错误