「Java jar jar_name.jar」を呼び出すときに使用するJVMを指定することは可能ですか?マシンに2つの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)
実行中のコマンドシェルでこれを行う最も簡単な方法は、次のようなものです。
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を使用するプログラムは変更されません。
パスに間違ったディレクトリが存在する場合(存在しないディレクトリを含む)、エラーが発生しない場合、事実上無視されることに注意してください。
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
JVMが2つインストールされている場合。バージョンを前もって配置します。 Linux:エクスポートPATH =/usr/lib/jvm/Java-8-Oracle/bin:$ PATH
これにより、あいまいさがなくなります。