Java 9のJLinkツールとは?カスタムJREの作成方法をわかりやすく解説
JLinkは、Java 9で導入された新しいリンカーツールであり、独自のカスタマイズされたJRE(Java Runtime Environment)を作成するために使用されます。通常、プログラムの実行にはOracleが提供するデフォルトのJREを使用しますが、独自のJREが必要な場合にこのツールが役立ちます。JLinkを使えば、アプリケーションの実行に必要なクラスやモジュールだけを含んだJREを作成できるため、開発したアプリケーションのサイズを削減し、完全なJREへの依存を最小限に抑えることができます。
Java 9では、コードのコンパイルから実行までの間に、新たなフェーズであるリンクタイム(link time)が導入されました。リンクタイムは、コンパイルタイムとランタイムの間に存在するオプションのフェーズです。
カスタムJREを作成するコマンド
jlink --module-path --add-modules --limit-modules --output
主なオプションの説明
- --module-path: リンカーが観測可能なモジュールを検索するパスです。モジュラーJARファイル、JMODファイル、モジュールなどを指定できます。
- --add-modules: 実行時イメージに追加するモジュールを指定します。これらのモジュールは、推移的な依存関係を通じて、追加のモジュールをもたらす場合があります。
- --limit-modules: 観測可能なモジュールの範囲を制限します。
- --output: 生成された実行時イメージを格納する出力ディレクトリを指定します。
実行例
jlink --module-path $JAVA_HOME/jmods:mlib --add-modules com.greetings --output greetingsapp
上記のコマンドでは、--module-pathに指定しているのは、パッケージ化されたモジュールが格納されているディレクトリのパスです。$JAVA_HOME/jmodsは、java.base.jmodやその他の標準モジュールおよびJDKモジュールを含むディレクトリです。また、モジュールパス上のmlibディレクトリには、com.greetingsモジュールのアーティファクトが含まれています。このコマンドを実行すると、com.greetingsアプリケーションの実行に必要なモジュールだけを含んだ「greetingsapp」というカスタムランタイムイメージが生成されます。
このようにJLinkを活用することで、軽量で配布しやすいランタイム環境を簡単に構築でき、コンテナ環境や組み込みシステムなどでのJavaアプリケーション展開にも非常に有効です。
-
JavaにおけるOverlayLayoutの重要性とは?基本から使い方まで解説
OverlayLayoutとは OverlayLayoutはObjectクラスのサブクラスとして実装されたレイアウトマネージャーで、複数のコンポーネントを互いに重ねて配置できるのが最大の特徴です。各コンポーネントに指定されたアライメント(整列設定)に基づいて、相対的な位置が決定されます。 コンポーネントごとに異なるサイズを設定すると、すべてのコンポーネントが重なり合った状態で表示され、それぞれを確認できます。 コンポーネントを他のコンポーネントの上やフレーム内の任意の位置に整列させるには、setAlignmentX()メソッドとsetAlignmentY()メソッドを使用します。引数には0
-
JREとJDKの違いは何?Java開発初心者向けにわかりやすく解説
Javaを学び始めると、必ず耳にするのが「JDK」と「JRE」という2つの用語です。名前が似ているため混同されやすいのですが、それぞれ役割や含まれる機能が異なります。この記事では、両者の違いを初心者にもわかりやすく解説します。 JDK(Java Development Kit)とは JDKは「Java Development Kit」の略で、Javaアプリケーションの開発と実行に必要なすべてのツールおよびライブラリをまとめたソフトウェアパッケージです。 JDKには以下のようなものが含まれています。 コンパイラ(javac):ソースコード(.javaファイル)をバイトコード(.classファイ