3

如果我的机器安装了多个版本的 jre,比如 jre 5、jre 6 和 jre 7。是否可以强制我的应用程序在运行时使用特定的 jre(比如 jre 5)?

4

7 回答 7

2

启动应用程序。使用Java Web 开始。它为运行时版本控制提供了许多选项。

JNLP 运行时设置

所有勾选的 JRE 都可供 JWS 启动的应用程序使用。

以下是在启动文件中选择任何 1.5 变体的方法。

<j2se version="1.5" />
于 2012-08-31T17:09:12.240 回答
2

我的电脑上有 3 个 JDK。每个 JDK 都有自己的环境变量

%JAVA_HOME_1_5%  
%JAVA_HOME_1_6%  
%JAVA_HOME_1_7%  

当我想使用特定的 JDK 时,我设置%JAVA_HOME%了这个变量。
我还使用脚本来使用不同的 JDK。例如,如果我想使用JDK 6启动 Jboss ,我运行下一个脚本

set JAVA_HOME=%JAVA_HOME_1_6%; 
%JBOSS_HOME%/run.bat  

如果我想执行 runnable jar (使用JDK 5 ) 我运行下一个脚本

%JAVA_HOME_1_5%/bin java MyJar.jar  

如果我想用JDK 7运行 maven ,我正在使用下一个脚本

set JAVA_HOME=%JAVA_HOME_1_7%  
mvn clean install -Dmaven.test.skip=true

等等

因此,您可以使用任何使用 env 的 JDK。变量和简单脚本

于 2012-08-31T17:15:09.150 回答
1

在对应路径下运行java:

usr/local/jdk1.5/bin/java HelloWorld

usr/local/jdk1.6/bin/java HelloWorld

usr/local/jdk1.7/bin/java HelloWorld

ETC...

于 2012-08-31T17:10:27.620 回答
1

在您正在运行的应用程序中使用

String javaVersion = System.getProperty("java.specification.version");

检查正在使用哪个版本的 Java 来运行您的应用程序。如果它与您想要的不匹配,您可以抛出异常。

于 2012-08-31T17:12:12.497 回答
1

我找到了办法。我们可以允许应用程序通过LINKjavaw -version:"version String"中给出的方式选择 jre

例如:javaw -version:"1.6.*"

于 2012-09-03T14:02:18.593 回答
0

您可以通过使用磁盘上到特定 Java 版本的绝对路径启动应用程序来强制应用程序。

于 2012-08-31T17:07:13.490 回答
0

您通常必须在启动 java 之前执行此操作。在脚本中,您可以查找特定版本的 java 的可执行文件,如果该 jre 不存在/不在已知位置,则会失败。然后在找到那个版本的 java 之后用那个 jre 运行你的 java 程序。如何显式执行此操作取决于您的操作系统。

一旦进入 java 程序 java 你不能改变版本。因此,Java 版本检查(在 Java 程序内部)仅用于在完全执行之前退出而不是更改为有效版本。

于 2012-08-31T17:07:46.267 回答