Ruby Version Manager Java worldに相当しますか?
新しいJVMを簡単にダウンロードしてインストールし、それらを切り替えることができるツールを探しています。例えば:
jvm install <version>
jvm list //will list installed JVMs on my system
jvm use jdk1.6 //will switch my env to jdk 1.6 version, etc.
Ubuntuを使用している場合は、コマンドを使用して使用するJVMを指定できます(apt-getまたはaptitudeからインストールされたJVMでのみ機能します)
Sudo update-alternatives --config Java
または、Java_HOMEを設定します。これが良いチュートリアルです:
http://www.jenv.be/ このタイプの制御が可能になります。
JVMを使用する場合、JVMを切り替える必要がある場合は、バッチファイル(またはPowerShellスクリプト)を使用してクラスパスとJVMパスを管理する必要があります。システムのデフォルトのJVMパスに依存する必要はありません。代わりに、JVMを実行するシェルのクラスパスとJVMパス環境を変更することで、アプリが任意のJVMを指すようにするだけです。
レジストリからJavaの場所を取得しているプログラムの場合、理論的には、バッチスクリプトを使用してそれを更新することもできます。
この点で、Javaは「Rubyバージョンマネージャー」よりもはるかに簡単です。
SDKMAN! は、Javaエコシステムの同様のツールです。さまざまなJavaバージョン、Scala、Clojure、Kotlin、Groovy、およびMavenやGradleなどのビルドツール。
MacとLinuxで動作しますが、試してみる意欲に応じてWindowsのサポートについても言及されています:)
秘訣は、update-Java-alternatives(Java-commonパッケージから)を使用することです。 update-alternativesコマンドは、さまざまなJava/bin実行可能ファイルのシンボリックリンクのすべてを更新するわけではありません。そのため、update-Java-alternativesの方が優れています。
したがって、OpenJDK 6から7に進むには、update-Java-alternatives -l
を使用してJavaの選択肢のリストを取得し、Sudo update-Java-alternatives -s Java-1.7.0-openjdk-AMD64
を使用してJDKを切り替えます。
警告:上記のコマンドは、次のエラーをスローする可能性があります。
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-Java-alternatives: plugin alternative does not exist:
/usr/lib/jvm/Java-7-openjdk-AMD64/jre/lib/AMD64/IcedTeaPlugin.so
これは、openjdkプラグインがデフォルトでインストールされていないためです。修正するには、Sudo apt-get install icedtea-7-plugin
を実行し、update-Java-alternativesを再実行します。