Linux 上で Java JDK をインストールおよび管理するための推奨される方法

Patricia Arquette
リリース: 2024-10-31 05:09:30
オリジナル
281 人が閲覧しました

The preferred way to install and manage Java JDKs on Linux

私は Fedora Workstation 40 を使用していますが、同様の手順は Ubuntu/Mint などのほとんどの主要な Linux ディストリビューションでも機能します

既存の Java インストールを確認する

一部の Linux ディストリビューションでは、Java がデフォルトでインストールされます。ただし、これは単なる JRE であり、JDK ではありません。 java コマンドは見つかっても、javac コマンドが見つからないため、これを確認できます。

java  # would show manual of arguments
javac # would give not found error if JDK not installed
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
java --version  # OR "java -version" for older java
javac --version
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

JDK、JRE、JVM の違いについては、次の記事を参照してください。

  • Java プログラミング環境と Java ランタイム環境 (JRE)
  • Java の JDK、JRE、JVM、JIT とは何ですか?

Fedora では、JRE/JDK は /usr/lib/jvm 内に保存されます。したがって、その内容を調べたり、次のようにクエリしたりできます。

find /usr/lib/jvm -name java
find /usr/lib/jvm -name javac
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

OpenJDK のインストール

私は Fedora 40 を使用していますが、パッケージ マネージャーは dnf です。それぞれの Linux ディストリビューションのパッケージ マネージャー (Ubuntu/Debian の apt など) を介して目的の OpenJDK をインストールします。

  • インストールできる利用可能な JDK を検索します:
  dnf search jdk
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

さまざまな Java バージョンとパッケージ内のバリアント サフィックスを含む、インストール可能なパッケージのリストが表示されます。ヘッドレス バリアントには通常、JRE が含まれるだけです。 Java 開発に必要なすべてのツールを備えた完全な JDK をインストールするには、通常、dnf の名前に -devel という用語サフィックスが含まれる、パッケージの開発バリアントが必要です。以下は、dnf 出力からの Java 17 OpenJDK のいくつかのパッケージ バリアント名のリストです:

  java-17-openjdk.x86_64 : OpenJDK 17 Runtime Environment
  java-17-openjdk-devel.x86_64 : OpenJDK 17 Development Environment
  java-17-openjdk-devel-fastdebug.x86_64 : OpenJDK 17 Development Environment optimised with full debugging on
  java-17-openjdk-devel-slowdebug.x86_64 : OpenJDK 17 Development Environment unoptimised with full debugging on
  java-17-openjdk-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on
  java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment
  java-17-openjdk-headless-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on
  java-17-openjdk-headless-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on
  java-17-openjdk-javadoc.x86_64 : OpenJDK 17 API documentation
  java-17-openjdk-portable.x86_64 : OpenJDK 17 Runtime Environment portable edition
  java-17-openjdk-portable-devel.x86_64 : OpenJDK 17 Development Environment portable edition
  java-17-openjdk-portable-sources.x86_64 : OpenJDK 17 full patched sources of portable JDK
  java-17-openjdk-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on
  java-17-openjdk-src.x86_64 : OpenJDK 17 Source Bundle
  java-17-openjdk-src-fastdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and optimisation
  java-17-openjdk-src-slowdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and no optimisation
ログイン後にコピー
ログイン後にコピー

Ubuntu ではパッケージが少なく、インストールするパッケージは通常、JDK ツールセット全体に対して openjdk-17-jdk のような名前が付けられます

  • そのリストから目的の OpenJDK パッケージをインストールします
  # Installing the latest OpenJDK with optimized debugging
  sudo dnf install java-latest-openjdk-devel-fastdebug

  # Installing a specific version like OpenJDK 17
  sudo dnf install java-17-openjdk-devel
ログイン後にコピー
ログイン後にコピー
  • java および javac コマンドが見つかったことを確認してインストールを確認します

Oracle JDKのインストール

  • 公式 Oracle SE ダウンロード ページにアクセスしてください。必要な Java バージョンのダウンロード セクションを見つけます

  • お使いのプラットフォームに適切なパッケージをダウンロードします。 Fedora などの RedHat ベースの Linux ディストリビューションの場合は、.rpm パッケージ (Ubuntu/Debian の場合は .deb) をダウンロードします。ダウンロードする前に、Oracle にサインインし、条件に同意する必要があります

  • ダウンロードしたファイル (jdk-11.0.24_linux-x64_bin.rpm など) をダブルクリックし、[インストール] を選択します。 Oracle JDK をインストールして構成します。

  • OracleJDK がインストールされたので、java および javac コマンドが検出されることを確認します

IntelliJ 経由での JDK のインストール

IntelliJ 自体から JDK をインストールすることもできます:

  • 歯車アイコン ⚙️ をクリックして、プロジェクト構造に移動します。 SDKを選択し、プラスアイコンをクリックします。次に、ダウンロードしてインストールする JDK を選択します
  • JDK は ~/.jdks フォルダーにインストールされます (例: ~/.jdks/openjdk-20.0.2/)

IntelliJ は、システム上の利用可能な JDK の場所を自動検出します。プロジェクト構造の構成済み JDK の下に /usr/lib/jvm/jdk-11-oracle-x64 などの既存の JDK フォルダーの場所を追加することもできます


複数の Java インストールの操作

Linux の update-alternatives コマンド (Fedora では単に Alternatives とも呼ばれます) は、代替システムを構成する シンボリック リンク に関する情報を作成、削除、維持、および表示します

同じまたは類似の機能を果たす複数のプログラムを 1 つのシステムに同時にインストールすることができます。ファイルシステム内の総称名は、交換可能な機能を提供するすべてのファイルで共有されます。代替システムは、この一般名で参照される実際のファイルを判断するのに役立ちます。

役立つ参考文献:

    update-alternatives - Linux マンページ
  • Linux の代替コマンドの紹介 - RedHat
パッケージ マネージャー経由で OpenJDK をインストールするか、ダウンロードしたファイルから Oracle-JDK をインストールすると、そのプロセス中に代替ファイルが自動的に更新されるはずです

コマンドで使用可能なオプションを表示する

java  # would show manual of arguments
javac # would give not found error if JDK not installed
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
出力は次のようになります:


java --version  # OR "java -version" for older java
javac --version
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
同様に、javac の代替オプション リストを参照してください

コマンドの代替エントリの追加

コマンドの代替手段がリストに登録されていない場合は、次のように手動で追加できます。


find /usr/lib/jvm -name java
find /usr/lib/jvm -name javac
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
たとえば、IntelliJ 内から JetBrains Runtime (JCEF) JDK をダウンロードしました。これは ~/.jdks/jbrsdk_jcef-17.0.12/ フォルダーにダウンロードされました。しかし、それは代替リストには表示されませんでした。そこで、java と javac の代替エントリを次のように追加します。


  dnf search jdk
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
同様に、必要に応じて、jar、javadoc などのコマンドの代替手段を追加します

次のようにフォロワー リンクを追加することもできます。

--インストールリンク名パス優先度 [--フ​​ォロワーリンク名パス]... [--initscript サービス] [--フ​​ァミリー名]

使用可能なコマンドの代替手段の切り替え

存在する Java インストールの中から選択してください


  java-17-openjdk.x86_64 : OpenJDK 17 Runtime Environment
  java-17-openjdk-devel.x86_64 : OpenJDK 17 Development Environment
  java-17-openjdk-devel-fastdebug.x86_64 : OpenJDK 17 Development Environment optimised with full debugging on
  java-17-openjdk-devel-slowdebug.x86_64 : OpenJDK 17 Development Environment unoptimised with full debugging on
  java-17-openjdk-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on
  java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment
  java-17-openjdk-headless-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on
  java-17-openjdk-headless-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on
  java-17-openjdk-javadoc.x86_64 : OpenJDK 17 API documentation
  java-17-openjdk-portable.x86_64 : OpenJDK 17 Runtime Environment portable edition
  java-17-openjdk-portable-devel.x86_64 : OpenJDK 17 Development Environment portable edition
  java-17-openjdk-portable-sources.x86_64 : OpenJDK 17 full patched sources of portable JDK
  java-17-openjdk-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on
  java-17-openjdk-src.x86_64 : OpenJDK 17 Source Bundle
  java-17-openjdk-src-fastdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and optimisation
  java-17-openjdk-src-slowdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and no optimisation
ログイン後にコピー
ログイン後にコピー
出力は以下のようになります。 * は利用可能な最良のバージョンを示し、現在の選択を示します:


  # Installing the latest OpenJDK with optimized debugging
  sudo dnf install java-latest-openjdk-devel-fastdebug

  # Installing a specific version like OpenJDK 17
  sudo dnf install java-17-openjdk-devel
ログイン後にコピー
ログイン後にコピー
同様に、javac の代替オプションから選択します

JDK パッケージをアンインストール/削除するときは、それぞれの代替エントリも忘れずに削除してください

代替エントリの削除

たとえば、JCEF JDK の Java コマンド代替エントリを削除するには:

java  # would show manual of arguments
javac # would give not found error if JDK not installed
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

JavaをPATHに追加

Java インストール間の管理に update-alternatives メソッドに従っており、すべてのエントリが完了している場合、これは必要ありません

ただし、シェル プロファイルで構成を手動で設定するには、次のようにすることができます:

  • シェル構成ファイルで環境変数を設定します (つまり、~/.zshrc、~/.bashrc など)。
java --version  # OR "java -version" for older java
javac --version
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • シェルを再起動します:
find /usr/lib/jvm -name java
find /usr/lib/jvm -name javac
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • これで、Java が正常に検出されるはずです
  dnf search jdk
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

以上がLinux 上で Java JDK をインストールおよび管理するための推奨される方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!