特定のプロセスのJava環境を切り替えるには?

特定のプロセスのJava環境を切り替えるには?

私は職場でopenjdkを使用していますが、時にはoracleのjreまたはoracleのjreの特定のバージョンが必要な場合もあります。私が知っている限り、JAVA_HOME値や/usr/bin/javaリンク/etc/alternatives/java先を更新する必要があります。特定のプロセスに対して一時的にこれらの変更を実行するためのスマートで安全で簡単な方法はありますか?ありがとうございます! (私はDebian Linuxの不安定なリポジトリを使用しています)

答え1

特定のプロセスに対して一時的にこれらの変更を実行するためのスマートで安全で簡単な方法はありますか?

このような環境変数は$JAVA_HOME継承され、システム全体ではありません。したがって、特定の方法で設定するとそのプロセスにのみ適用され、エクスポートすると生成されるすべてのプロセスに適用されます。

ここでのプロセスはシェルインスタンスです。コマンドラインからこれを行うか、次のように作成できます。

#!/bin/sh

PATH=/opt/oracle/java/bin:$PATH
export $PATH
exec whatever.jar

これがどのように機能するのかわからない場合は、$PATHディレクトリを順番に調べます。この場合、/opt/oracle/java/bin他のものよりも先に検索が実行され、java必要に応じてそこにあるディレクトリが使用されます。

.jar実行するファイルを指定するためにパラメーターを使用するために呼び出すときに指定することができます。.class使用するJavaインストールのいくつかの短縮パラメーター(例えばif [[ $1 == 2 ]]; then PATH=/opt/oracle2/java/bin...

これは$PATH(そして$JAVA_HOMEそれを行う場合でも)スクリプトとスクリプトが起動するすべての項目にのみ適用されます。

作業している場合は、export1つの端末で変数を使用でき、その変数はその端末にのみ適用されます。 JDKがインストールされている場合などはbin同じディレクトリに含まれますjavac

関連情報