"java jar jar_name.jar"を呼び出すときに使用するJVMを指定することは可能ですか?私は自分のマシンに2つのJVMをインストールしています。 JAVA_HOMEを変更することはできません。すべての実行準備ができているコードが壊れる可能性があります。WindowsのコマンドラインからJVMを設定する
種類よろしく
スティーブン
"java jar jar_name.jar"を呼び出すときに使用するJVMを指定することは可能ですか?私は自分のマシンに2つのJVMをインストールしています。 JAVA_HOMEを変更することはできません。すべての実行準備ができているコードが壊れる可能性があります。WindowsのコマンドラインからJVMを設定する
種類よろしく
スティーブン
はい - ちょうど明示の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)
実行するコマンドシェルのためにこれを行う最も簡単な方法は、のようなものされています。たとえば、ここに私のデフォルトのJVMを示す完全なセッションはパスへの変更、その後、だ
set PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%
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メカニズムを使用してインストールされたSun VMが、JVMファインダEXEでsystem32にインストールされていることを前提としています。
タイプ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
+1、java 1.6が必要です – RealHowTo
はい私はしばしば3つ以上のJVMがインストールされている必要があります。たとえば、JREがJDKのJREと若干異なる場合があることに気付きました。私はそれは簡単だと思う
@echo off
setlocal
@rem _________________________
@rem
@set JAVA_HOME=b:\lang\java\jdk\v1.6\u45\x64\jre
@rem
@set JAVA_EXE=%JAVA_HOME%\bin\java
@set VER=test
@set WRK=%~d0%~p0%VER%
@rem
@pushd %WRK%
cd
@echo.
@echo %JAVA_EXE% -jar %WRK%\openmrs-standalone.jar
%JAVA_EXE% -jar %WRK%\openmrs-standalone.jar
@rem
@rem _________________________
popd
endlocal
@exit /b
:「包装情報」のビットのためのWindows上の溶液に行くマイ
はこのようなものです。主なものは、setlocalとendlocalで、実行するプログラムが他にもあっても、あなたのアプリにこれまでの「個人的な環境」を与えることです。あなたはJVMの2をインストールしている場合は
は、Linux
sudo update-alternatives --config java
でこれを試してみてください。 バージョンを先に配置します。 Linux:export PATH =/usr/lib/jvm/java-8-oracle/bin:$ PATH
これにより、あいまいさが解消されます。
うわー、これは決定的なスケーティングです。私は、通知がポップアップしたときにあなたの答えの最初の2行をおおよそ投稿しようとしていました。 –
@Jon SkeetどのようにJavaプログラムでこれを行うことができますか?私は32ビットJREを使用して.jarを実行したいが、Javaコードから新しいプロセスのJREパスを設定することはできますか? –
@Utku:プロセスを作成すると、完全なパスを実行可能ファイルに渡すことができます。 –