在Windows上通过命令行设置JVM

24 java windows command-line jvm

是否可以指定在调用"java jar jar_name.jar"时使用的JVM.我的机器上安装了两个JVM.我无法更改JAVA_HOME,因为它可能会破坏已准备好运行的代码.

亲切的问候

斯蒂芬

Jon*_*eet 45

是的 - 只是明确提供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)
Run Code Online (Sandbox Code Playgroud)

对于正在运行的命令shell,最简单的方法是这样的:

set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%
Run Code Online (Sandbox Code Playgroud)

例如,这是一个完整的会话,显示我的默认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)
Run Code Online (Sandbox Code Playgroud)

这不会改变明确使用JAVA_HOME的程序.

请注意,如果您在路径中获得了错误的目录 - 包括一个不存在的目录 - 您将不会收到任何错误,它实际上只会被忽略.