首页 > 解决方案 > 我需要在最终用户计算机上安装什么来运行我用 eclipse 制作的 Java 应用程序

问题描述

我使用 eclipse 制作了我的第一个 java/JavaFX 应用程序并导出了 Runnable Jar 文件。在我的计算机上,使用以下命令运行良好:

java --module-path ".\lib" --add-modules=javafx.controls -jar ".\myProgram.jar"

但是当我尝试在另一台计算机上运行时,出现以下错误:

无法识别的选项:--module-path 错误:无法创建 Java 虚拟机。错误:发生了致命异常。程序将会退出。

在我的计算机上,Java 版本给了我:

java版本“15” 2020-09-15

Java(TM) SE 运行时环境 (build 15+36-1562)

Java HotSpot(TM) 64 位服务器 VM(内部版本 15+36-1562,混合模式,共享)

在用户的计算机上,我得到:

java版本“1.8.0_201”

Java(TM) SE 运行时环境 (build 1.8.0_201-b09)

Java HotSpot(TM) 64 位服务器 VM(内部版本 25.201-b09,混合模式)

Java 的最低版本是什么,我需要安装一台用户计算机才能完成这项工作。我还需要在 Eclipse 中做些什么才能在最终用户计算机上完成这项工作。我应该使用其他版本的 Java 来构建我的应用程序吗?我迷路了。

标签: javajavafxdeployment

解决方案


您需要为每台要运行应用程序的新计算机设置兼容的 Java 安装。一种简单的方法是使用为您的应用程序在目录中jlink构建兼容的 JRE :runtime

 jlink --module-path ".\lib" --add-modules=javafx.controls --output myruntime

您可以添加这些额外的 jlink 参数来减小图像大小: --strip-debug --no-man-pages --no-header-files --compress=1

然后您应该能够使用新的 JRE 运行时映像在当前机器上运行您的应用程序,该映像现在包含 JavaFX javafx.controls 模块及其所有依赖项:

myruntime\bin\java -version
=> should confirm: java version "15"

myruntime\bin\java javafx.application.Application
=> should report: Error: Main method not found in class javafx.application.Application
=> This confirms JavaFX is part of the JRE

myruntime\bin\java -jar ".\myProgram.jar"
=> should run your application

然后,您可以将包含代码的目录复制runtime到其他机器,并以与当前机器相同的方式运行,只要您保持相同的相对目录结构即可。

如果一切正常,您可以尝试为运行时 JRE + 您的代码构建 Windows MSI 安装包,以便您可以为自己的应用程序使用标准 Windows 安装程序。见jpackage


推荐阅读