# Talend StudioでアーティファクトをビルドするためのJavaバージョンの設定

ルーチンやジョブのコンパイルに使用するJavaのバージョンを、ターゲットとなる実行環境に合わせて設定できます。

## 手順

1. Talend Studioのメインウィンドウのツールバーで![\[Project settings\] (プロジェクト設定)](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/projectsettings.svg)をクリックするか、メニューバーで[File] (ファイル) &gt; [Edit Project Properties] (プロジェクトプロパティを編集)とクリックして[Project Settings] (プロジェクト設定)ダイアログボックスを開きます。
2. Buildノードを展開し、[Java Version] (Javaバージョン)をクリックして、Javaバージョンのビューを開きます。

   ![ビッグデータ機能がインストールされたJavaバージョンの設定。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio-project-settings-java-version.png)

   利用可能な設定は、Talend Studioにビッグデータ機能がインストールされているかどうかに応じて異なります。
   * ビッグデータ機能がない場合、[Javaバージョン]ビューには以下の設定が表示されます。
     * データ統合やルートの構築: Java 17またはJava 21を使用。ランタイムでサポートされているJavaバージョン: Java 17およびJava 21。
     * ユーザールーチンのビルド: Java 8、Java 17、またはJava 21を使用。
   * ビッグデータ機能がインストールされている場合、[Javaバージョン]ビューには2つのタブが表示されます。
     * データ統合 / ルート: ビッグデータ機能を使用しない場合と同じ設定が表示されます。
     * ビッグデータ: 各SparkタイプにおけるSparkのコンパイルオプションとサポートされているJavaのバージョンを示します。
       * ビッグデータ Spark バッチ &lt; 3.5 / ストリーミング: Java 8準拠でのみコンパイルされています。ランチャーがサポートするJavaバージョン: Java 17。クラスターでサポートされているJavaバージョン: 8、11、および17。
       * ビッグデータSparkバッチ3.5および3.x: Java 8またはJava 17に準拠してコンパイルされています。ランタイムでサポートされているJavaバージョン: 17および21。クラスターでサポートされているJavaバージョン: 8、11、および17。
       * ビッグデータSparkバッチ4.0: Java 17準拠でのみコンパイルされています。ランチャーでサポートされているJavaバージョン: 17および21。クラスターでサポートされているJavaバージョン: 17。

   情報メモ注: ルーチンのコンパイルレベルは、ジョブのコンパイルレベルを超えることはできません。超えている場合、Studioは互換性のないジョブタイプをリストした警告を表示します。
3. Java内部モジュールをさらに設定し、たとえばJava 17またはJava21でのジョブ実行時に発生するJVM警告や致命的エラーの数を減らすこともできます。

   [Java Version] (Javaバージョン)の下にある[Module access settings] (モジュールアクセスの設定)をクリックすると、このビューが開きます。
   * [Default] (デフォルト)タブでは、Talendのコンポーネント、Talend Component Kitのフレームワーク、ビッグデータディストリビューションのJava内部モジュールを確認できます。
   * [Custom] (カスタム)タブでは、カスタムコンポーネントのJava内部モジュールと、すべてのジョブやルートのグローバルなJava内部モジュールを設定できます。
   * 特定のジョブに対してJava内部モジュールが設定されていない場合、次のようなエラーが発生することがあります:
     ```
     Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private static volatile java.net.Authenticator
                           java.net.Authenticator.theAuthenticator accessible: module java.base does not "opens java.net" to unnamed module @121f97fb
     ```
   * Talend Studioによってビルドされたジョブのjob.shスクリプトファイルかjob.batというスクリプトファイルに、--add-opensパラメーターが追加されます。例:
     ```
     --add-opens=java.base/java.net=ALL-UNNAMED
     ```

   --add-opensパラメーターはまた、独立したものとして設定された全tRunJobコンポーネント用のJavaコマンドに追加されます。
4. [Apply and Close] (適用して閉じる)をクリックして変更を適用し、ダイアログボックスを閉じます。