web-dev-qa-db-ja.com

JVMバージョンマネージャー

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.
34
luacassus

Ubuntuを使用している場合は、コマンドを使用して使用するJVMを指定できます(apt-getまたはaptitudeからインストールされたJVMでのみ機能します)

Sudo update-alternatives --config Java

または、Java_HOMEを設定します。これが良いチュートリアルです:

http://vietpad.sourceforge.net/javaonlinux.html

http://www.jenv.be/ このタイプの制御が可能になります。

17
dom farr

JVMを使用する場合、JVMを切り替える必要がある場合は、バッチファイル(またはPowerShellスクリプト)を使用してクラスパスとJVMパスを管理する必要があります。システムのデフォルトのJVMパスに依存する必要はありません。代わりに、JVMを実行するシェルのクラスパスとJVMパス環境を変更することで、アプリが任意のJVMを指すようにするだけです。

レジストリからJavaの場所を取得しているプログラムの場合、理論的には、バッチスクリプトを使用してそれを更新することもできます。

この点で、Javaは「Rubyバージョンマネージャー」よりもはるかに簡単です。

5
djangofan

完全を期すために、さらに2つあります jabba (私が作成者です。Goで記述され、nvm/gvm/rvmの後に設計されています)と jenv ( jenv.beと混同するため。Oracleからのインストールはサポートしていませんが、カスタムZipからインストールできます)。

4
Stanley Shyiko

SDKMAN! は、Javaエコシステムの同様のツールです。さまざまなJavaバージョン、Scala、Clojure、Kotlin、Groovy、およびMavenやGradleなどのビルドツール。

MacとLinuxで動作しますが、試してみる意欲に応じてWindowsのサポートについても言及されています:)

3
jocull

秘訣は、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を再実行します。

0
djangofan