"运行 Java 最低版本在 Windows 上不起作用-6ren"> "运行 Java 最低版本在 Windows 上不起作用-我想强制我的应用程序运行的最低 JVM 版本为 1.6 或更高版本(即 1.6+)。我的理解是,您可以使用“-version:”命令行参数来执行此操作。我试过了,它似乎在 Linux 下工作正常,但在-6ren">
gpt4 book ai didi

java - 强制使用 "java -version:"运行 Java 最低版本在 Windows 上不起作用

转载 作者:可可西里 更新时间:2023-11-01 12:43:32 25 4
gpt4 key购买 nike

我想强制我的应用程序运行的最低 JVM 版本为 1.6 或更高版本(即 1.6+)。我的理解是,您可以使用“-version:”命令行参数来执行此操作。我试过了,它似乎在 Linux 下工作正常,但在 Windows 下却不行。

Linux

我在 Linux 机器上安装了 JDK 版本 1.6.0_21。 $JAVA_HOME 和 $PATH 环境变量已设置为它们应有的值。

我运行了以下命令:

$ java -version:1.6+ -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

$ java -version:1.5+ -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

$ java -version:1.7+ -version
Unable to locate JRE meeting specification "1.7+"

一切似乎都在意料之中。 “版本:1.6+”和“版本:1.5+”应该可以工作,因为我安装了 JDK 1.6.0_21,而“版本:1.7+”不应该,因为我没有安装 JDK 1.7。

Windows

我在 Windows 机器(更具体地说是 Windows 7)上安装了相同的 JDK 版本 1.6.0_21。 %JAVA_HOME% 和 %PATH% 环境变量已设置为它们应有的值。

我运行了以下命令:

$ java -version:1.6+ -version
Unable to locate JRE meeting specification "1.6+"

$ java -version:1.5+ -version
Unable to locate JRE meeting specification "1.5+"

$ java -version:1.7+ -version
Unable to locate JRE meeting specification "1.7+"

我每次执行都会出错。

  • 谁能解释为什么相同的命令行参数在 Linux 上有效,但在 Windows 上却无效?这是功能还是错误?

  • 我能做些什么来解决/解决它?我尽可能地希望在 Linux 和 Windows 上应用相同的命令行参数,因此我不必为 Linux 指定不同的“-version:”参数,为 Windows 指定另一个不同的参数。

谢谢。

最佳答案

  • Can anyone explain why does the same command line argument work on Linux, but not on Windows? Is this a feature or a bug?

我认为这与 Linux 和 Windows 无关,而是特定发行版的问题 - 我现在可以使用 Oracle JDK 在 Windows 上正常运行,即 Sun JDK 的后继者(通过 PowerShell 或命令):

PS> java -version:1.7+ -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

相反,它在带有 OpenJDK 的 Ubuntu 12.04 LTS 上对我来说失败了:

$ java -version
java version "1.7.0_51"
OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-0ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
$ java -version:1.7+ -version
Error: Unable to locate JRE meeting specification "1.7+"

简短的搜索揭示了以下有些不确定的问题:

我已经确认在 Ubuntu 13.10 和 Amazon Linux 2013.09.2 上的 OpenJDK 6/7 仍然存在这个问题,所以我建议尝试使用不同的 OpenJDK 发行版或 JDK 供应商,以防这个问题普遍存在 -这绝对是一个奇怪的问题,尤其是。鉴于 OpenJDK 同时是 official Java SE 7 Reference Implementation .

关于java - 强制使用 "java -version:<value>"运行 Java 最低版本在 Windows 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com