java - 我需要在最终用户计算机上安装什么来运行我用 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 来构建我的应用程序吗?我迷路了。
解决方案
您需要为每台要运行应用程序的新计算机设置兼容的 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
推荐阅读
- angular - 角度,按钮验证以错误的顺序工作
- python - 没有名为“azure.eventhub”的模块;“天蓝色”不是一个包
- postgresql - 将部分 slug 值添加/替换到完整 url
- powershell - PowerShell 问题中的 SBT 和命令行参数
- java - Spring Security 不适用于 Weblogic 12.2.1.2
- java - 在 Kotlin/Android 中作为参数传递的视图
- postgresql - 设置 SQL 处理能力
- reactjs - 您的构建过程中的某些内容正在加载错误的版本
- css - 如何更改添加样式标签的顺序
- c++11 - 从 ID3D11Texture2D 获取 GDI DC 进行绘图