java - 如何在jre1.8上运行java11和jfx11应用程序

标签 java maven javafx deployment javafx-11

我是一名计算机专业的学生,​​在公司实习期间,使用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 的用户一起运行?

恭敬

最佳答案

不要尝试构建一个 fat jar 子。它不适用于现代 Java。相反,构建一个真正的安装程序。使用 JDK 14+ 可以轻松完成此操作。只需按照本教程 https://github.com/dlemmermann/JPackageScriptFX 进行操作即可其中涵盖了您需要的一切。它使用 JDK 14 中的 jpackage 和其中的一些其他工具,并且也适用于非模块化项目。安装 JDK 14 时,只需确保正确设置 JAVA_HOME 和 PATH,以便所有工具都能找到正确的 Java 版本进行构建。

关于java - 如何在jre1.8上运行java11和jfx11应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61610248/

相关文章:

java - 使用 CSS 从聚焦选项卡中删除发光边框

JavaFx 查找具有特定 id 的源父节点?

java - Jtable 显示数据库的错误(旧)结果

java - PMD 规则集未通过 MAVEN 下载/更新

bash - 是否可以从 Maven 运行 Bash 脚本?

java - 如何从可编辑组合框中更改的文本获取事件?

java - Hibernate 条件接受 %% 值

java类连续2-3分钟后调用rest api

java - JSSE中是否有DTLS实现

java - 如何在 Travis-CI 中跳过 Java Maven 项目的 gpg 签名