如何强制我的 JAR 在 JDK 8 上执行?

问题描述 投票:0回答:1

我有一个Java项目(没有maven或gradle,一个“简单”的项目),它有很多库来运行它。 该项目必须使用 JDK 8 启动,否则将无法运行,因为它不兼容更高版本。

我可以使用命令提示符运行它:path/to/my/jdk8/java.exe -jar myJavaProject.jar

但我希望它能够轻松地在任何计算机上运行,而无需搜索 jdk8 文件夹... 那么如何强制 Jar 在 jdk 8 上执行呢?或者任何让它变得更容易的解决方案。

我在网上搜索过,但只找到了一些maven解决方案。但我不太了解maven...

提前非常感谢!

java java-8 jar executable-jar
1个回答
1
投票

如果未安装 Java 8 JRE,则无法强制应用程序在 Java 8 上运行。

如果启动器找不到已安装的 Java 8 JRE,则无法强制应用程序在 Java 8 上运行。

查找 JRE 的传统解决方案是要求用户设置

JAVA_HOME
环境变量,并让应用程序的启动器使用该变量。你可以退回到其他机制;例如使用通过搜索
java
找到的任何
PATH
命令。当然,这两者都假设用户对环境变量如何工作以及(在后一种情况下)操作系统如何搜索命令路径有基本的了解。

确保用户仅使用 Java 8 运行您的应用程序的实用选项如下:

  1. 使用还安装合适 JRE 的安装程序发送您的应用程序。关于如何做到这一点,有很多现有的问答。然后,您可以使用安装程序安装 JRE 的位置来配置已安装的应用程序启动器(例如脚本)。

    这意味着您需要为您想要支持的每个(主要)平台提供单独的安装程序。

  2. 让您的申请>检查< to see if the version of Java that is running it is suitable ... and exit if it isn't suitable.

    您可以通过查看

    System
    属性对象中的设置来完成此操作。例如,
    java.version
    属性以标准形式给出主要+次要+补丁版本号。

    您可以在启动器类中进行版本检查。如果版本可接受,启动器就可以正确动态加载并启动应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.