FedoraでSDKMAN!とIntelliJ IDEAを使って「完璧な」Java環境を構築する

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

課題:LinuxにおけるJavaバージョン管理の悪夢

午前中はJava 8のプロジェクトをメンテナンスし、午後はJava 11の会議、夜には最新のJava 21を試してみたい……。そんな経験はありませんか?DNFで直接Javaをインストールしている場合、バージョン間の切り替えは非常に面倒です。プロジェクトごとにalternativesコマンドに苦戦したり、.bashrcJAVA_HOMEを手動で修正したりする必要があります。

実際、Fedoraは開発の柔軟性よりもOSの安定性を優先しています. FedoraのOpenJDKパッケージはシステムアプリケーションの実行には適していますが、コーディング中に頻繁にバージョンを切り替えるようには設計されていません。

なぜ従来の方法ではなくSDKMAN!を使うべきなのか?

開発環境を管理する際の違いを、以下の比較表で確認してみましょう。

比較項目 DNF(Fedoraリポジトリ) 手動ダウンロード(.tar.gz) SDKMAN!を使用
インストール速度 速い(1コマンド) 遅い(解凍、パス設定) 非常に速い(1コマンド)
バージョン切り替え 困難(長いコマンドが必要) 非常に困難(設定修正) 2秒で完了(1コマンド)
リポジトリの豊富さ 制限あり(OpenJDKのみ) サイトから探す 100以上のビルド(Oracle, Zulu, Temurin…)

Fedoraを2年間使い続けた私の経験から言えば、開発環境とOS環境は完全に分離すべきです。JDKの管理にはSDKMAN!を、IDEの管理にはJetBrains Toolboxを使用します。この方法ならシステムを常にクリーンに保てます。

ステップ1:SDKMAN!をサクッとインストールする

SDKMAN!は、数百もの SDKをインストール・切り替えできる強力なコマンドラインツールです。まず、SDKMAN!がパッケージの解凍に使用するzipunzipをインストールします。

sudo dnf install zip unzip curl

次に、自動インストールスクリプトを実行します。

curl -s "https://get.sdkman.io" | bash

ターミナルを再起動せずにすぐに使い始めるには、以下のコマンドを実行します。

source "$HOME/.sdkman/bin/sdkman-init.sh"

ヒント:sdk versionを入力して確認してください。具体的なバージョンが表示されれば成功です。

ステップ2:プロフェッショナルな複数JDKバージョンの管理

利用可能なJavaのリストを表示するには、sdk list javaコマンドを使用します。例えば、非常に安定性が高いTemurin(Eclipse Adoptium)のJava 17と21をインストールする場合は以下の通りです。

# Java 17 LTSをインストール
sdk install java 17.0.10-tem

# 最新のJava 21 LTSをインストール
sdk install java 21.0.2-tem

古いプロジェクトのためにJava 17へ素早く切り替えたいですか?sdk use java 17.0.10-temと入力するだけです。新しく開くすべてのターミナルでJava 21を使用したい場合は、defaultコマンドを使います。

sdk default java 21.0.2-tem

ステップ3:MavenとGradleを同期してインストール

DNFでMavenをインストールするのは避けましょう。バージョンが古いことが多いからです。SDKMAN!経由で直接インストールすれば、Mavenは現在有効なJAVA_HOMEを自動的に認識し、ビルド時のバージョン競合を防げます。

sdk install maven
sdk install gradle

ステップ4:JetBrains ToolboxでIntelliJ IDEAをインストール

Fedoraにおいて、JetBrains ToolboxはIDEを管理する最良の方法です。ワンクリックでアップグレードでき、手動で.tar.gzファイルをダウンロードするのと比べて約15分の節約になります。

  1. 公式サイトからJetBrains Toolboxをダウンロードします。
  2. ファイルを解凍し、実行ファイルを実行してインストールします。
  3. Toolboxを開き、IntelliJ IDEA(UltimateまたはCommunity)を選択してインストールします。

重要なヒント:IntelliJでProject SDKを設定する際、パスを/home/ユーザー名/.sdkman/candidates/java/currentに指定してください。ターミナルでsdk defaultを変更すると、IntelliJも再設定なしで自動的に追従します。

ステップ5:大規模プロジェクト向けのパフォーマンス最適化

Fedoraは最新のカーネルを使用しているため、JVMのパフォーマンスは非常に良好です。しかし、重いマイクロサービスプロジェクトでは、ファイル制限(ulimit)を増やすことをお勧めします。/etc/security/limits.confファイルの末尾に以下の行を追加してください。

* soft nofile 65536
* hard nofile 65536

これにより、大規模プロジェクトでIntelliJが数千ものファイルをインデックスする際に発生する「Too many open files」エラーを回避できます。

まとめ

FedoraでSDKMAN!とIntelliJ IDEAを組み合わせることで、macOSのようなスムーズな開発体験が得られます。環境変数や古いインストールパッケージによるシステムの汚れに悩まされることはもうありません。Fedoraのターミナルの力を活用して、今すぐ開発ワークフローを最適化しましょう。

Share: