検索

1.10. JVM とネイティブビルドモード

download PDF

次のセクションでは、Mandrel または GraalVM の native-image ツールを使用して、クラシック JVM アプリケーションおよびネイティブアプリケーションをコンパイルする方法を説明します。

1.10.1. アプリケーションをクラシック JVM アプリケーションとしてコンパイルする

アプリケーションを、JVM アプリケーションとしてコンパイルできます。このオプションは、quarkus.package.type 設定プロパティーに基づいており、次のいずれかのファイルを生成します。

  • fast-jar: Quarkus およびデフォルトの設定オプション用に最適化された JAR ファイル。その結果、起動時間がわずかに短縮され、メモリー使用量がわずかに減少します。
  • legacy-jar: 典型的な JAR ファイル。
  • uber-jar: 単一のスタンドアロン JAR ファイル。

    これらの JAR ファイルはすべてのオペレーティングシステムで動作し、ネイティブイメージよりもはるかに短時間でビルドされます。

1.10.2. アプリケーションをネイティブイメージにコンパイルする

アプリケーションをネイティブイメージにコンパイルできます。その場合、quarkus.package.type 設定プロパティーを native に設定します。

このプロパティーを使用すると、たとえば Windows の .exe ファイルなど、選択したオペレーティングシステム専用にコンパイルされた実行可能バイナリーファイルを作成できます。これらのファイルは JAVA JAR ファイルよりも起動時間が短く、RAM 消費量も少なくなりますが、コンパイルには数分かかります。さらに、プロファイルに基づく最適化が欠落しているため、ネイティブバイナリーを使用して達成できる最大スループットは、通常の JVM アプリケーションよりも低くなります。

  • Mandrel を使用する

    Mandrel は、GraalVM for Red Hat build of Quarkus 用に特化されたディストリビューションで、Linux コンテナー化環境をターゲットとするネイティブ実行可能ファイルをビルドする場合に推奨されるアプローチでもあります。Mandrel アプローチは、コンテナー化された環境にコンパイル出力を埋め込むのに最適ですが、Linux64 ビットのネイティブ実行可能ファイルしか提供されません。したがって、.exe などの結果はオプションではありません。

    Mandrel ユーザーは、ネイティブ実行可能ファイルのビルドにコンテナーを使用することが推奨されます。

    公式 Mandrel イメージを使用して、Docker または Podman のローカルインストールでアプリケーションをネイティブモードにコンパイルするには、次のプロパティーを指定して mvn package コマンドを入力します。

    -Dquarkus.package.type=native
    -Dquarkus.native.container-build=true
    -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:{MandrelVersion}-{JDK-ver-other}
  • GraalVM を使用する

    Mandrel は macOS および Windows プラットフォームをサポートしないため、Oracle GraalVM を使用してこれらのオペレーティングシステム上でネイティブ実行可能ファイルを構築できます。

    ベアメタル Linux または Windows ディストリビューション上で Oracle GraalVM を直接使用して、ネイティブ実行可能ファイルをビルドすることもできます。このプロセスの詳細は、Oracle GraalVM README およびリリースノートを参照してください。

    Oracle GraalVM を使用してネイティブ実行可能 ファイルをビルドする方法は、Quarkus アプリケーションのネイティブ実行可能ファイルへのコンパイル を参照してください

関連情報

  • ネイティブ実行可能ファイルの構築、コンパイル、パッケージ化、およびデバッグに関する詳細は、ネイティブ実行可能ファイルの ビルド を 参照してください。
  • Java アプリケーションをネイティブ実行可能ファイルとして実行しようとすると発生する可能性のある問題のトラブルシューティングに役立つ情報は、ネイティブアプリケーションを 作成するためのヒント を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.