我有一个Java项目(没有maven或gradle,一个“简单”的项目),它有很多库来运行它。 该项目必须使用 JDK 8 启动,否则将无法运行,因为它不兼容更高版本。
我可以使用命令提示符运行它:path/to/my/jdk8/java.exe -jar myJavaProject.jar
但我希望它能够轻松地在任何计算机上运行,而无需搜索 jdk8 文件夹... 那么如何强制 Jar 在 jdk 8 上执行呢?或者任何让它变得更容易的解决方案。
我在网上搜索过,但只找到了一些maven解决方案。但我不太了解maven...
提前非常感谢!
如果未安装 Java 8 JRE,则无法强制应用程序在 Java 8 上运行。
如果启动器找不到已安装的 Java 8 JRE,则无法强制应用程序在 Java 8 上运行。
查找 JRE 的传统解决方案是要求用户设置
JAVA_HOME
环境变量,并让应用程序的启动器使用该变量。你可以退回到其他机制;例如使用通过搜索 java
找到的任何 PATH
命令。当然,这两者都假设用户对环境变量如何工作以及(在后一种情况下)操作系统如何搜索命令路径有基本的了解。
确保用户仅使用 Java 8 运行您的应用程序的实用选项如下:
使用还安装合适 JRE 的安装程序发送您的应用程序。关于如何做到这一点,有很多现有的问答。然后,您可以使用安装程序安装 JRE 的位置来配置已安装的应用程序启动器(例如脚本)。
这意味着您需要为您想要支持的每个(主要)平台提供单独的安装程序。
让您的申请>检查< to see if the version of Java that is running it is suitable ... and exit if it isn't suitable.
您可以通过查看
System
属性对象中的设置来完成此操作。例如, java.version
属性以标准形式给出主要+次要+补丁版本号。
您可以在启动器类中进行版本检查。如果版本可接受,启动器就可以正确动态加载并启动应用程序。