【发布时间】:2020-08-19 22:37:53
【问题描述】:
我是一名计算机专业的学生,在公司实习期间,使用 JavaFX、maven 和 apache.poi 开发了一个小型 Java 软件。
信息:该应用程序在 Intellij 上运行并完美构建,我的问题涉及我在项目完成后生成的 *.jar。
我第一次使用 JDK 14 和 JFX14,但是在执行时 (java –jar xx.jar) 我有一个错误说我正在用 JAVA 58 (JAVA 14) 编译程序并且我正在使用 JRE 52(Java 8)。
所以我修改了项目以使用 JDK 11 和 JFX 11 进行编译,现在我遇到同样的错误,告诉我我正在用 JAVA 55 (JAVA 11) 编译程序并且我使用的是 JRE 52 (JAVA 8) .
错误来自我的电脑默认使用jre1.8.0_251。
所以我尝试以这种方式启动程序“path_to_jdk11\bin\java.exe”-jar xxx.jar,它可以工作。
这就是我的问题:
大多数用户使用 Oracle 网站上提供的 JAVA 版本,即 jre1.8.0_251,它是可用的最新版本。在我的程序之外需要 Java 11,我想它没有部署在公司 PC 上。 我试图将我的项目移植到 java 8,但 Maven 和 module.info.java 出现错误。
您对部署*.jar 或将其部署在.exe 中以便它可以与拥有jre1.8.0_251 的用户一起运行有什么技巧吗?
恭敬
【问题讨论】:
-
您唯一的可能是将项目完全移植到 java 8 或使用 java 11 构建它并包含一个运行程序的 jre。 Java 11 出现了 jlink,这正是为此目的。它使用您的程序需要的组件构建自定义 jre
-
我尝试使用 Jlink,但我在项目中使用 apache.poi,所以当我运行 javafx:jlink 时出现此错误:自动模块无法与 jlink 一起使用:来自 xxx 的 poi
标签: java maven javafx deployment javafx-11