GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでjEnvを使用して複数のJavaバージョンを管理する方法

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.1 

Openjdk-14は、この特定のシェルで使用されるJavaバージョンです。現在のシェルセッションを終了すると、以前のグローバルに使用されていたJavaバージョンが有効になります。

$ JAVA_HOMEを設定する必要はありません!

別のJavaバージョンに切り替えるときに、$ JAVA_HOME変数を設定したことがないことに気づきましたか?いいえ、一度もありません! Jenvがそれを処理し、使用しているJava環境に応じて自動的に設定します。

次のコマンドを使用して、JAVA_HOME変数の現在の設定を表示できます。

  $ echo $ JAVA_HOME  /home/ostechnix/.jenv/versions/openjdk64-13.0.3 

JAVA_HOME環境変数を設定する方法を忘れて、開発に集中してください。

関連記事:

  • Pyenv –Pythonバージョン管理が簡単になりました

Linux
  1. Linuxファイル機能を管理する方法

  2. Linuxでアカウントのパスワードを管理する方法

  3. LinuxでPyenvを使用して複数のPythonバージョンを管理する方法

  1. Linuxでuseraddを使用してユーザーを管理する方法

  2. RockyLinux8にJavaバージョンをインストールして管理する方法

  3. UbuntuでNginxを使用して複数のPHPバージョンを実行する方法は?

  1. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  2. Ubuntu20.04でnを使用してNodeJSバージョンを管理する方法

  3. Linux で複数の Java バージョンを操作する方法