Java開発者は、さまざまなJavaバージョンでコードをテストしたいと考えています。または、単に新しいJavaバージョンの機能についていくことを望んでいました。多くの場合、さまざまなJava環境をセットアップすることは、時間のかかる困難な作業になる可能性があります。ここでバージョン管理システムが役に立ちます!今日は、 jEnvと呼ばれるそのようなバージョンマネージャーについて説明します。 。 jEnvは、Linuxで複数のJavaバージョンを管理するためのコマンドラインツールです。 SDKMANのようなものです 、ただしJavaの場合のみ。 jEnvは、 jenvの更新されたフォークです。 、それ自体は rbenvから採用されています 。 jEnvは、正確なJavaバージョンを必要とするJavaアプリケーションの開発に非常に役立ちます。
開発者であるjEnvを使用する;
- 複数のJavaインストールを並べてインストールおよび管理できます
- グローバル、ディレクトリ(アプリケーション固有)、さらにはシェルレベル(シェル固有)ごとにJavaインストールをセットアップできます。
- 異なるJavaバージョンを簡単かつ迅速に切り替えることができます
- バージョンごとにJAVA_HOME環境変数を設定する必要はありません。
Javaのインストール
jEnvはJavaをインストールしないことに注意してください あなたのために。既存のJavaインストールのみを管理します。パッケージマネージャーまたはその他の任意の方法を使用してJavaをインストールする必要があります。 Ubuntuシステムにopenjdk13と14をインストールします:
$ sudo apt install openjdk-13-jdk $ sudo apt install openjdk-14-jdk
すでにJavaをインストールしている場合は、この手順を無視してください。
LinuxにjEnvをインストールする
コマンドを使用してクローンjEnvリポジトリをGitします:
$ git clone https://github.com/jenv/jenv.git〜/ .jenv
上記のコマンドは、 .jenvという名前のローカルディレクトリにjEnvの内容を複製します。 。
次に、jEnvを$ PATHに追加します:
$ echo'export PATH ="$ HOME / .jenv / bin:$ PATH"'>>〜/ .bash_profile
次に、jEnvを初期化します:
$ echo'eval "$(jenv init-)"'>>〜/ .bash_profile
最後に、コマンドを使用して〜/.bash_profileで行った変更を更新します。
$ source〜/ .bash_profile
なんらかの理由で機能しない場合は、〜/.bashrcを使用してください。 〜/.bash_profileの代わりに。
$ echo'export PATH ="$ HOME / .jenv / bin:$ PATH"'>>〜/ .bashrc $ echo'eval "$(jenv init-)"'>>〜/ .bashrc $ source〜 /.bashrc
Zshを使用している場合 シェル、jEnvをインストールするコマンドは次のとおりです。
$ echo'export PATH ="$ HOME / .jenv / bin:$ PATH"'>>〜/ .zshrc $ echo'eval "$(jenv init-)"'>>〜/ .zshrc>
jEnvのインストールを確認する
次のコマンドでjEnvがインストールされているかどうかを確認しましょう:
$ jenv doctor
出力例:
[OK]JAVA_HOMEが設定されていません [エラー]パス内のJavaバイナリがjenvシムにありません。[エラー]パスを確認するか、/ path / to / java/homeを使用してみてください。Javaインストールへの有効なパスではありません。パス:/home/ostechnix/.jenv/libexec:/home/ostechnix/.jenv/shims:/home/ostechnix/.jenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin :/ usr / bin:/ sbin:/ bin:/ usr / games:/ usr / local / games:/ snap / bin [OK]Jenvが正しくロードされています
ご覧のとおり、出力には、JAVA_HOME変数がまだ設定されておらず、jenvが正しくロードされていることが示されています。他のエラーは気にしないでください。次のセクションでJavaを追加すると、これらはなくなります。
次に、コマンドを使用してJAVA_HOME環境変数を設定しましょう:
$ jenv enable-plugin export
現在のシェルセッションを再起動して、jenvエクスポートプラグインをアクティブ化する必要があります。echoエクスポートプラグインがアクティブ化されました。シェルセッションを再開するには、次のコマンドを実行します:
$ exec $ SHELL -l </ pre>ここで、もう一度「jenv doctor」コマンドを実行して、何が返されるかを確認してください。
$ jenv doctor出力例:
[OK]JAVA_HOME変数はおそらくjenvPROMPTによって設定されます [エラー]パス内のJavaバイナリがjenvシムにありません。[エラー]パスを確認するか、/ path / to / java/homeを使用してみてください。Javaインストールへの有効なパスではありません。パス:/home/ostechnix/.jenv/libexec:/home/ostechnix/.jenv/shims:/home/ostechnix/.jenv/bin:/home/ostechnix/.jenv/shims:/home/ostechnix/.jenv/ bin:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games:/ usr / local / games:/ snap / bin [OK]Jenvが正しくロードされています終わり! JAVA_HOME変数は、現在アクティブなJava環境に応じてjEnvによって自動的に設定されます。
Linux上のjEnvで複数のJavaバージョンを管理する
オプションなしでjEnvを実行すると、ヘルプセクションが表示されます:
$ jenv出力例:
jenv 0.5.3-2-g78dbd7fUsage:jenv[ ]いくつかの便利なjenvコマンドは次のとおりです。commands使用可能なすべてのjenvコマンドを一覧表示するlocalローカルアプリケーション固有のJavaバージョンを設定または表示するglobalグローバルを設定または表示するJavaバージョンシェルシェル固有のJavaバージョンを設定または表示します。rehashRehashjenvshims(実行可能ファイルをインストールした後に実行します)version現在のJavaバージョンとその元のバージョンを表示します。jenvで使用可能なすべてのJavaバージョンを一覧表示します。実行可能ファイルへのフルパスを表示します。指定された実行可能ファイルを含むすべてのJavaバージョンは、jenvにJDKを追加します。エイリアス名は、「java-version」を解析することで生成されます。特定のコマンドについては、「jenv help 」を参照してください。完全なドキュメントについては、https://github.com/jenv/jenv/blob/master/を参照してください。 README.md さまざまなJava環境を追加する
次に、Java環境がどこにあるかをjenvに伝える必要があります。
まず、コマンドを使用してopenjdk-13環境を追加しましょう:
$ jenv add / usr / lib / jvm / java-13-openjdk-amd64 /出力例:
openjdk64-13.0.3added13.0.3added13.0added13追加次に、コマンドを使用してopenjdk-14を追加します:
$ jenv add / usr / lib / jvm / java-14-openjdk-amd64 / openjdk64-14.0.1added14.0.1追加14.0add14追加次に、コマンドを使用してjenvで使用可能なすべてのJavaバージョンを確認します。
$jenvバージョン出力例:
*システム(/home/ostechnix/.jenv/versionで設定)13 13.0 13.0.3 14 14.0 14.0.1 openjdk64-13.0.3 openjdk64-14.0.1
上記の出力からわかるように、2つのJava環境、つまりopenjdk13とopenjdk14が現在管理されています。出力の他の数値は気にしないでください。これらは、同じバージョンを参照する単なるエイリアスです。
グローバルJava環境を設定する
すでに述べたように、jenvを使用すると、グローバルまたはディレクトリ/プロジェクトごと、またはシェルごとにJavaインストールをセットアップし、グローバルバージョンを変更せずにそれらを切り替えることができます。
現在のJavaバージョンを確認しましょう:
$ java --version openjdk 14.0.1 2020-04-14OpenJDKランタイム環境(ビルド14.0.1 + 7-Ubuntu-1ubuntu1)OpenJDK 64ビットサーバーVM(ビルド14.0.1 + 7-Ubuntu-1ubuntu1、混合モード、共有)出力にあるように、現在のグローバルバージョンはopenjdk-14に設定されています。
openjdk-13をグローバルバージョンとして設定するには、次のコマンドを実行します:
$ jenv global openjdk64-13.0.3次に、Javaのバージョンを確認します。
$ java --version openjdk 13.0.3 2020-04-14OpenJDKランタイム環境(ビルド13.0.3 + 3-Ubuntu-1ubuntu2)OpenJDK 64ビットサーバーVM(ビルド13.0.3 + 3-Ubuntu-1ubuntu2、混合モード)
以下のようにフルバージョンの代わりにエイリアス番号を使用することもできます:
$ jenv global 13 $ jenv global 13.0 $ jenv global 13.0.3これら3つのコマンドはすべて、openjdk-13をグローバルバージョンとして設定します。
ローカルまたはディレクトリごとのJava環境を設定する
グローバルバージョンを変更せずに、特定のプロジェクトにJava環境を設定したい場合があります。
たとえば、次の手順では、openjdk-14を「ostechnix-java」という名前のプロジェクトのローカルバージョンとして設定しますが、グローバルバージョンは変更しません。
$ mkdir ostechnix-java $ cd ostechnix-java $ jenv local openjdk64-14.0.1
現在、ローカル環境はopenjdk-14ですが、グローバルJava環境はopenjdk-13です。同様に、アプリケーションごとに複数の異なるJava環境を設定できます。プロジェクトのディレクトリに移動し、選択したJava環境を設定して、アプリケーションの構築またはテストを開始するだけです。とても簡単です!
シェル固有のJava環境を設定する
現在のシェルセッションにJava環境を設定するには、次のコマンドを実行します。
$ jenv shell openjdk64-14.0.1Openjdk-14は、この特定のシェルで使用されるJavaバージョンです。現在のシェルセッションを終了すると、以前のグローバルに使用されていたJavaバージョンが有効になります。
$ JAVA_HOMEを設定する必要はありません!
別のJavaバージョンに切り替えるときに、$ JAVA_HOME変数を設定したことがないことに気づきましたか?いいえ、一度もありません! Jenvがそれを処理し、使用しているJava環境に応じて自動的に設定します。
次のコマンドを使用して、JAVA_HOME変数の現在の設定を表示できます。
$ echo $ JAVA_HOME /home/ostechnix/.jenv/versions/openjdk64-13.0.3JAVA_HOME環境変数を設定する方法を忘れて、開発に集中してください。
関連記事:
- Pyenv –Pythonバージョン管理が簡単になりました