我可以在我的程序上指定 Java 到 运行 的哪个版本吗?

Can I specify what version of Java to run my program on

我有一个在 JRE 1.6 上运行的旧程序,当您升级超过该程序时,该程序将无法登录。

我研究过对其进行升级,但似乎无法使其与更高版本的 JRE 兼容。 问题是客户不断在其运行的机器上升级 JRE,即使被告知不要这样做。

是否可以在一台机器上安装 2 个 JRE 并在 运行 我的程序中指定使用哪个?

我在想 class 路径是否指向 JRE 1.8,但我没有使用 class 路径,而是 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

这是我的 bat 文件,我尝试用 C:\jre1.5/bin/java.exe -jar 替换 -classpath 但它认为那是我的主要 class 不是新的 class 路径,我做错了什么

Is it possible to install 2 JRE on a machine and specify which one to use when running my program?

YES,如果你执行 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 is my bat file, i've tried replacing -classpath with path_to_jre/bin/java.exe -jar it thinks thats the name of my main class not the new class path, what am i doing wrong

你的 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