我能否指定运行我的程序所需的Java版本?

4

我有一个旧程序,运行在 JRE 1.6 上,当你升级到那之后,程序将无法登录。

我尝试着升级它,但似乎无法与更高版本的 JRE 兼容。问题是客户会继续升级它所运行的机器上的 JRE,即使被告知不要这样做。

在一台机器上安装两个 JRE 并指定运行我的程序时使用哪一个,这可行吗?

我想如果类路径指向 JRE 1.8,但我没有使用类路径而是使用 JRE 1.6 的完整地址,这样会起作用吗?

编辑:

java -Djava.library.path=lib/ -classpath .;lib/Serialio.jar;lib/log4j.jar;lib/client.jar -Djava.security.policy=java.policy 192.168.0.10 1098

这是我的批处理文件,我尝试将 -classpath 替换为 C:\jre1.5/bin/java.exe -jar,但它认为那是我的主类名,而不是新的类路径,我做错了什么?


无需任何,使用Ant编译并通过bat文件运行。 - Skeith
1个回答

3

在一台机器上安装两个 JRE,能否指定在运行程序时使用哪一个版本?

可以。如果执行 JAR 文件,则可以从特定的 JRE 中运行它。

path_to_jre/bin/java.exe -jar YourApp.jar

将上述代码放入 .bat 文件中,供您的客户使用。双击即可使用指定的Java版本运行程序,让您的客户在升级Java以供其他应用程序使用时不会出现问题。


java -Djava.library.path=lib/ -classpath .;lib/Serialio.jar;lib/log4j.jar;lib/client.jar -Djava.security.policy=java.policy 192.168.0.10 1098 是我的.bat文件,我试过将 -classpath 替换为 path_to_jre/bin/java.exe -jar,但它认为这是我的主类名而不是新的类路径,请问我做错了什么?

您的.bat文件必须类似于以下内容(Java路径为自定义):

C:\Program Files\Java\jre6\bin\java 
       -Djava.library.path=lib/ 
       -classpath .;lib/Serialio.jar;lib/log4j.jar;lib/client.jar 
       -Djava.security.policy=java.policy 192.168.0.10 1098

java -Djava.library.path=lib/ -classpath .;lib/Serialio.jar;lib/log4j.jar;lib/client.jar -Djava.security.policy=java.policy 192.168.0.10 1098是我的批处理文件,我尝试用path_to_jre/bin/java.exe -jar替换-classpath,但它认为那是我的主类名而不是新的类路径,我做错了什么? - Skeith
请在问题中添加额外信息以澄清,读取注释中的代码几乎是不可能的。 - Jordi Castilla
另外,path_to_jre必须替换为实际路径,例如:c:\java\jre6\*。 - Jordi Castilla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接