マシンに複数のバージョンのjre(jre 5、jre 6、jre 7など)がインストールされている場合、実行時にアプリケーションに特定のjre(jre 5など)を使用させることはできますか?
7 に答える
アプリを起動します。JavaWebStartを使用します。ランタイムバージョニングのための多くのオプションを提供します。
チェックされたすべてのJREは、JWSで起動されたアプリで使用できます。
起動ファイルで1.5バリアントを選択する方法は次のとおりです。
<j2se version="1.5" />
私のコンピューターには3つのJDKがあります。すべてのJDKには独自の環境変数があります
%JAVA_HOME_1_5%
%JAVA_HOME_1_6%
%JAVA_HOME_1_7%
特定の JDK を使用する場合は、%JAVA_HOME%
この変数に設定します。
また、さまざまな JDK を使用するためのスクリプトを使用します。たとえば、JDK 6を使用して Jboss を開始する場合は、次のスクリプトを実行します
set JAVA_HOME=%JAVA_HOME_1_6%;
%JBOSS_HOME%/run.bat
実行可能な jar を ( JDK 5を使用して) 実行したい場合は、次のスクリプトを実行します
%JAVA_HOME_1_5%/bin java MyJar.jar
JDK 7でmaven を実行したい場合は、次のスクリプトを使用しています
set JAVA_HOME=%JAVA_HOME_1_7%
mvn clean install -Dmaven.test.skip=true
等
したがって、env を使用して任意の JDK を使用できます。変数と簡単なスクリプト
私はそれをする方法を見つけました。LINKjavaw -version:"version String"
に記載されているように、アプリケーションがjreを選択できるようにすることができます
例:javaw -version:"1.6。*"
対応するパスでJavaを実行します。
usr / local / jdk1.5 / bin / java HelloWorld
usr / local / jdk1.6 / bin / java HelloWorld
usr / local / jdk1.7 / bin / java HelloWorld
等...
実行中のアプリケーションで使用する
String javaVersion = System.getProperty("java.specification.version");
アプリの実行に使用されているJavaのバージョンを確認します。必要なものと一致しない場合は、例外をスローできます。
ディスク上の特定の Java バージョンへの絶対パスを使用してアプリケーションを起動することにより、アプリケーションを強制的に実行できます。
通常、Java を起動する前にこれを行う必要があります。スクリプト内で、特定のバージョンの Java の実行可能ファイルを探し、その jre が存在しない場合や既知の場所にない場合は失敗します。次に、そのバージョンの Java を見つけたら、その jre を使用して Java プログラムを実行します。これを明示的に行う方法は、OS によって異なります。
Java プログラム java に入ると、バージョンを変更することはできません。したがって、バージョンの Java チェック (Java プログラム内) は、有効なバージョンに変更するのではなく、完全に実行する前に終了する場合にのみ役立ちます。