GraalVM Tools for Java
- 拡張機能のインストール
- GraalVMインストール・ウィザード
- デフォルトのJavaランタイムの設定
- Javaの開発およびデバッグ
- VisualVMとの統合
- ネイティブ・イメージのサポート
- 拡張機能設定
GraalVM Tools for Java拡張機能は、VS Codeまたはローカル(あるいはその両方)でGraalVMインストールとそのコンポーネントを管理する機能を提供します。この拡張機能には、GraalVMインストールおよび構成ウィザードが付属しています。デフォルトのJavaランタイムをGraalVM JDKに簡単に設定できます。このJDKにはジャスト・イン・タイム(Graal)コンパイラとAhead-of-Time(ネイティブ・イメージ)コンパイラの両方が付属しており、VS Codeを快適で便利な統合環境とすることができます。
GraalVM Tools for JavaをGraalVM Tools for Micronautと組み合せると、VS CodeでのMicronautフレームワークのネイティブ・サポートが提供され、Java開発者により多くの可能性が開かれます。
ノート: 拡張機能はテクノロジ・プレビューです。開発チームは、開発者に優れたユーザビリティを提供するために、さらなる改善に積極的に取り組んでいます。
拡張機能のインストール
GraalVM Tools for Java拡張機能をVS Codeにインストールするには、次の手順を実行します:
- アクティビティ・バーの「Extensions」に移動します。
- 検索フィールドでGraalVMを検索します。
- 見つかったら、「Install」をクリックします。このアクションにより、VS Code MarketplaceからGraalVM Tools for Java拡張機能がインストールされます。
- 必要に応じてリロードします。
拡張機能は、Apache NetBeans Language Serverに依存します。(VSコードによってインストールされます。)拡張機能(およびその従属物)がインストールされると、VS Codeによって左側のアクティビティ・バーに「Gr」アイコンが表示されます。
GraalVMインストール・ウィザード
組み込みのインストール・ウィザードを使用すると、VS CodeにGraalVMを簡単にインストールできます。
開始するには、アクティビティ・バーの「Gr」アイコンをクリックします。既存のGraalVMインストールを追加するか(すでにGraalVMを使用している場合)、VS Code内からすぐにダこれをウンロードできます。ダイアログ・ウィンドウに、次のオプションが提示されます:
- Download & Install GraalVM
-
Add Existing GraalVM
「Download & Install GraalVM」アクションを使用すると、環境変数をスムーズに設定できるため、このアクションをお薦めします。
登録された各GraalVMインストールには、その場所と使用可能なすべてのコンポーネントが表示されます。コンポーネントはインストールされているか、ダウンロード可能です。コンポーネント名にカーソルを合せると、インストールするコンテキスト・アクション(プラス・アイコン)または削除するコンテキスト・アクション(バケット・アイコン)が表示されます。登録されたすべてのGraalVMインストールは、「File」→「Preferences」→「Settings」 (macOSの「Code」→「Preferences」→「Settings」)の構成ファイルにリストされます。
このインストール・モデルでは、同時に複数のGraalVMを許可し、VS Codeグローバル・ストレージまたはローカル・ディスクからも不要なGraalVMインストールをすばやく削除できます。
既存のGraalVMの追加
「Add Existing GraalVM」アクションを使用して、既存のGraalVMインストールを選択します。GraalVMインストールをデフォルトとして設定し、追加のコンポーネントをインストールするように求められます(まだインストールされていない場合)。「Add Existing GraalVM」は、「GRAALVM: INSTALLATIONS」パネルの横にあるアイコンを使用して起動することもできます。
GraalVM Communityのダウンロードおよびインストール
次のステップに従って、GraalVM Community Editionをダウンロードしてインストールします:
- GraalVMディストリビューション: Community (すべての目的について無料)を選択します。
- GraalVMのバージョン(主要な最新安定リリースのいずれかまたは最新の開発スナップショット)を選択します。
- 使用可能なJavaバージョンのいずれかを選択します。
- 宛先フォルダを選択します。
インストールはすぐに開始されます。ウィザードはバックグラウンドでGithubからパッケージをダウンロードし、進行状況を表示します。
インストールが完了すると、「Install Optional GraalVM Components」ウィンドウが開き、追加の言語ランタイムおよびユーティリティ(ネイティブ・イメージ、JavaScript、Node.js、LLVM、Python、Rubyなど)をコア・パッケージにインストールするよう求められます:
確認すると、選択リストに移動します:
GraalVM Enterpriseのダウンロードとインストール
GraalVM Enterpriseをインストールするには、有効な電子メール・アドレスを入力し、アーリー・アダプタ・バージョンのライセンスを含むGraalVM Enterprise EditionのOracle Technology Network License Agreementに同意する必要があります。
GraalVM Enterpriseをダウンロードしてインストールするには、次のステップに従います:
- GraalVMディストリビューション: Enterprise (評価および開発について無料)を選択します。
- GraalVMのバージョン(主要な最新安定リリースのいずれか)を選択します。
- 使用可能なJavaバージョンのいずれかを選択します。
- 宛先フォルダを選択します。
-
ライセンスが送信される有効な電子メール・アドレスを指定するか、既存のダウンロード・トークンを入力します。
これが最初のインストールであれば、まだライセンスに同意していません。[Enter]
を押します。電子メール・アドレスを入力すると、右下隅に次のポップアップが表示されます:電子メール・アドレスを確認し、ライセンスに同意するための電子メールが送信されます。
-
電子メール・クライアントに移動し、アーリー・アダプタ・バージョンのライセンスを含むGraalVM Enterprise EditionのOracle Technology Networkライセンス契約を確認します。
-
ライセンスに同意します。ライセンスの同意を確認し、ダウンロード・トークンを同時に生成します。
-
VS Codeに戻り、「Continue Download」を押して続行します。ダウンロード・トークンが生成され、デフォルトでユーザーのホーム・ディレクトリの
.gu/config
ファイルに保存されます(ストレージの場所は後から更新できます。次を参照)。GraalVM Enterpriseのダウンロードとインストールが開始されます。インストール・ウィザードは、Oracleのストレージ・ポイントからパッケージをダウンロードします。
ライセンスに同意しないで「Continue Download」をクリックすると、次の警告が表示されます:
ノート: マシンがプロキシの背後にある場合は、環境変数(
http_proxy
、https_proxy
)を適切に設定する必要があります。クイック・コマンド「Setup Proxy」を使用できます。
インストールが完了すると、「Install Optional GraalVM Components」ウィンドウが開き、追加の言語ランタイムおよびユーティリティ(ネイティブ・イメージ、JavaScript、Node.js、LLVM、Python、Rubyなど)をコア・パッケージにインストールするよう求められます。確認すると、選択リストに移動しますすでにダウンロード・トークンがあり、ライセンスを受け入れたため、コンポーネントは追加の操作なしでインストールされます。
現在のダウンロード構成の表示
既存のダウンロード・トークンの場所(デフォルトの場所、システム・プロパティ、ユーザー定義ファイル)を特定し、クリップボードにコピーするためのクイック・アクションがあります。コピーすると、ダウンロード・トークンを再利用して、(1) GraalVM Enterpriseまたはそのコンポーネントを別のコンピュータにインストールしたり、(2) CI/CDビルド・パイプラインに統合したりできます。
-
「View」、「Command Palette」の順に移動し、「GraalVM: Show GU Configuration」を検索します:
-
「GraalVM: Show GU Configuration」をクリックします。次のような内容のポップアップ・ウィンドウが表示されます:
-
ダウンロード・トークンをコピーします。
カスタム・ファイルの定義
ダウンロード・トークンを含むカスタム・ファイルを定義する場合は、VS Codeでこれを実行できます。
- VS Codeで「Preferences」、「Settings」の順に移動します。
- GraalVM for Javaの拡張設定を開き、「GU」フィールドを見つけます。
-
ダウンロード・トークンを含むカスタム・ファイルを指定します:
デフォルトJavaランタイムの設定
インストールが完了すると、デフォルトJavaの設定アクションが呼び出されます。
-
新しく追加されたGraalVMをアクティブに設定するには、インストール名の横にあるホーム・アイコンをクリックします。
-
「Configure active GraalVM」ウィンドウで、両方の「Set as JAVA for Terminal」オプション(
JAVA_HOME
とPATH
)を選択します:
または、「View」、「Command Palette」から同じアクションを呼び出すことができます(Linuxの場合は[Ctrl]+[Shift]+[P]
ホット・キーの組合せを使用し、macOSの場合、コマンド・パレットを開くには[Command]+[Shift]+[P]
を使用し、GraalVMを検索します)。他のアクションには、「GraalVM: Active GraalVM Installation」があります。
Javaの開発およびデバッグ
拡張機能と同様にインストールされるApache NetBeans Language Serverは、Java言語サポートを有効にします。
デフォルトで使用可能なJava起動構成がいくつかあります。有効になっている通常の機能に加えて、GraalVM Tools for Javaでは、GraalVMネイティブ・イメージを使用した事前コンパイル、ネイティブ実行可能ファイルのJavaのようなデバッグ、VisualVMとの統合、そして最後に多言語プログラミング(ここを参照)がサポートされています。
デフォルトのApache NetBeans Language Serverの代わりにMicrosoftのExtension Pack for Javaを使用できます(開始するには、VS CodeでのJavaに関するページを参照)。VS Codeは、インストールされたMicrosoftのExtension Pack for Javaを検出すると、Apache NetBeans Language Serverを非アクティブ化します。
VisualVMとの統合
GraalVM Tools for Java拡張機能は、VisualVM (オールインワンのJava (およびポリグロット)のモニタリングとトラブルシューティング・ツール)との統合を提供します。VisualVMは、強力で使いやすいビジュアルJavaツールをVS Codeに提供します。
Javaアプリケーションを実行すると、プロセスIDが自動的に検出され、「VISUALVM」ペインに表示されます。再生ボタンをクリックして、VisualVMを開きます:
詳細は、VS Code内からVisualVMの使用を開始する方法の専用ガイドを参照してください。
ネイティブ・イメージのサポート
GraalVM Tools for Java拡張機能により、VS Codeで直接GraalVMネイティブ・イメージを使用して生成されたネイティブ実行可能ファイルを簡単に構成、ビルドおよびデバッグできます。
ノート: GraalVMインストールにネイティブ・イメージ・コンポーネントを追加すると、GraalVMネイティブ・イメージのサポートが使用可能になります。
構成
GraalVM Tools for Java拡張機能では、「Agent」ペインに「NATIVE IMAGE」が提供され、動的機能コールを追跡および登録するプロセスを自動化できるため、VS Codeでネイティブ実行可能ファイルを簡単に構成およびビルドできます。トレース・エージェントは、アプリケーションがJVMで実行されている間に動的機能コールを追跡し、それらのコールをJSON構成ファイルに記録します。
ノート: VS CodeでJavaプロジェクトを開くと、「NATIVE IMAGE」ペインが表示されます。
ノート: ネイティブ・イメージ・エージェントのサポートは試験段階です。
次の項では、Javaアプリケーションのネイティブ実行可能ファイルをビルドし、トレース・エージェントをVS Codeに適用する方法について学習します。
ビルド
VS CodeでJavaアプリケーションのネイティブ実行可能ファイルを作成するには、次の手順を実行します:
- launch.jsonファイルを作成します。作成されていない場合は、「create a launch.json file」リンクを使用して、「Run and Debug」アクティビティ・パネルから新しいファイルを作成します。選択を求められたら、「Java 8+ environment」を選択します。編集後にlaunch.jsonファイルを保存します。
-
トレース・エージェントを有効にします。左側のサイドバーで「Gr」をクリックし、「NATIVE IMAGE」ペインを展開します。「Agent」を展開し、編集ボタンをクリックして状態を構成します。
ネイティブ・イメージ・エージェントがJavaプロセスから開始されるように、「enabled」を選択します:
ノート: 状態は記憶されません。VS Codeウィンドウを閉じると、「disabled」に戻ります。
- GraalVMランタイムでJavaアプリケーションを実行します。「Run and Debug」アクティビティ・パネルを開き(左側のサイドバーのバグ・アイコンをクリック)、「Launch Java 8+ App」構成を選択し、「Run Without Debugging」をクリックして現在のプロジェクトを開始します。
ノート: 「Start Debugging」アクションをクリックしてプロジェクトを開始しないでください。トレース・エージェントはデバッガ・エージェントと互換性がなく、このような構成の実行は失敗します。
-
生成される構成ファイルの出力フォルダを指定します。実行中、エージェントはJVMとインタフェースして、クラス、メソッド、フィールド、リソースを参照したり、プロキシ・アクセスをリクエストするすべてのコールをインターセプトします。エージェントは、インターセプトされたすべての動的アクセスを含む構成ファイルを生成し、指定した出力フォルダに格納します。プロジェクトを開始するときに、VS Codeによって目的の場所を選択するように求められます。次の中から選択できます。
META-INF/native-image
- 構成ファイルを格納するプロジェクト・ソースのデフォルトの場所/tmp
- 構成ファイルは/tmp/native-image
フォルダに格納されます- カスタム・フォルダ - 構成ファイルは、指定したカスタム・フォルダに格納されます
- 実行中のプロセスへのロードを生成して、より多くのコードを起動し、最適な構成を生成します。
- 実行可能なすべての実行パスが実行されたら、プロセスを終了します。この時点で、トレース・エージェントは収集した構成を、選択した出力フォルダにダンプします。
-
「Terminal」に移動し、「New Terminal」をクリックします。現在の作業フォルダ内のJavaクラス・ファイルからネイティブ実行可能ファイルをビルドするには、次のコマンドを使用します:
native-image [options] class [imagename]
プロジェクトがMavenまたはGradleベースである場合、Javaで記述されたネイティブ実行可能ファイルのビルドおよびテストのサポートを追加するための専用のMavenまたはGradleプラグインがあります。詳細なドキュメントは、次を参照してください:
- Gradleプラグインに関する項
- Mavenプラグインに関する項
Micronautフレームワークを使用してJavaプロジェクトを作成する場合、VS Codeクイック・アクションを使用してMicronautアプリケーションのネイティブ実行可能ファイルを作成できます。方法を学習するにはこちらを参照してください。
Windowsでのネイティブ・イメージのビルド
Windowsでネイティブ・イメージを使用するには、Windows SDKがインストールされているVisual Studioビルド・ツールが必要です。native-image
ビルダーは、x64ネイティブ・ツールのコマンド・プロンプトから実行した場合にのみ機能します。詳細は、このリンクを参照してください。
Windowsユーザーの場合、この拡張機能では、Microsoft開発者ツールを使用して事前構成されたx64コマンド・プロンプトが提供されます。Windows SDKを使用したVisual Studioビルド・ツール、ネイティブ・イメージを備えたGraalVMがすでにインストールされており、VS CodeでJavaプロジェクトを開いていると仮定します。
-
「NATIVE IMAGE」ペインで、右矢印>をクリックします:
デフォルトのインストール場所から既存のWindows SDKビルド・ツール構成スクリプト(
vcvars64.bat
)を選択するか、カスタム構成スクリプトを選択するように求めるダイアログ・ウィンドウが開きます。VS Codeはスクリプトを検出し、パスを事前移入します。 -
[Enter]を押します。新しい端末ウィンドウが開き、x64ネイティブ・ツールのコマンド・プロンプト内で実行されます。
Windows SDKビルド・ツールへのパスはグローバルに保存されるため、次回「NATIVE IMAGE」ペインから新しい端末を開くと、x64ネイティブ・ツールのコマンド・プロンプト内で実行されます。
-
native-image
ビルダーを実行して、たとえば、バージョンを確認します:native-image --version
GraalVMネイティブ・イメージの詳細は、こちらを参照してください。
拡張機能設定
GraalVM Tools for Java拡張機能は、VS Codeでの次の設定に影響します:
- graalvm.home - GraalVMインストールへのパス
- graalvm.installations - 登録済のすべてのGraalVMインストール
- graalvm.systemDetect - システム環境変数からGraalVMのインストールを検出します
- graalvm.languageServer.currentWorkDir - GraalVMの言語サーバー・プロトコルの作業フォルダへの絶対パス
- graalvm.languageServer.start - 実行中またはデバッグ中のプロセス内でGraalVMの言語サーバー・プロトコルを起動します
- graalvm.languageServer.delegateServers - 他の言語サーバーが実行される
language@[host:]port
のカンマ区切りリスト - graalvm.languageServer.startRLanguageServer - R言語サーバーを起動します
- graalvm.languageServer.startRubyLanguageServer - Ruby言語サーバーを起動します
フィードバックの提供またはヘルプの参照
プライバシ・ポリシー
さらに学習するには、Oracleプライバシ・ポリシーを参照してください。