web-dev-qa-db-ja.com

Windowsでコマンドラインを使用してJVMを設定する

「Java jar jar_name.jar」を呼び出すときに使用するJVMを指定することは可能ですか?マシンに2つのJVMがインストールされています。 Java_HOMEを変更することはできません。すべての実行準備ができているコードが壊れる可能性があるためです。

敬具

スティーブン

24
John

はい-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)

実行中のコマンドシェルでこれを行う最も簡単な方法は、次のようなものです。

set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%

たとえば、次の完全なセッションでは、デフォルトのJVM、次にパスの変更、次に新しい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を使用するプログラムは変更されません。

パスに間違ったディレクトリが存在する場合(存在しないディレクトリを含む)、エラーが発生しない場合、事実上無視されることに注意してください。

45
Jon Skeet

system32のJVM​​ Finder EXEで通常のWindows InstallShieldメカニズムを使用してインストールされた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
2
McDowell

JVMが2つインストールされている場合。バージョンを前もって配置します。 Linux:エクスポートPATH =/usr/lib/jvm/Java-8-Oracle/bin:$ PATH

これにより、あいまいさがなくなります。

0
Loshen Naicker