在 Windows 上通过命令行设置 JVM
2022-09-01 18:35:12
是否可以指定在调用“java jar jar_name.jar”时要使用的JVM。我的机器上安装了两个JVM。我无法更改JAVA_HOME,因为它可能会破坏所有准备就绪的代码。
亲切问候
斯蒂芬
是否可以指定在调用“java jar jar_name.jar”时要使用的JVM。我的机器上安装了两个JVM。我无法更改JAVA_HOME,因为它可能会破坏所有准备就绪的代码。
亲切问候
斯蒂芬
是的 - 只需显式提供java.exe的路径。例如:
c:\Users\Jon\Test>"c:\Program Files\java\jdk1.6.0_03\bin\java.exe" -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
c:\Users\Jon\Test>"c:\Program Files\java\jdk1.6.0_12\bin\java.exe" -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
对于正在运行的命令 shell,执行此操作的最简单方法是:
set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%
例如,下面是一个完整的会话,显示我的默认 JVM,然后更改路径,然后更改新路径:
c:\Users\Jon\Test>java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
c:\Users\Jon\Test>set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%
c:\Users\Jon\Test>java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
不过,这不会改变明确使用JAVA_HOME的程序。
请注意,如果您在路径中获得了错误的目录( 包括一个不存在的目录 ), 则不会收到任何错误,它实际上将被忽略。
您应该能够通过命令行参数执行此操作,假设这些是使用通常的Windows InstallShield机制和system32中的JVM查找器EXE安装的Sun VM。
键入 java -help 作为选项。具体而言,请参阅:
-version:<value>
require the specified version to run
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search