# Talend Studioでルーチン用にJavaバージョンを設定

データ統合ジョブとルートは、Java 17でコンパイルされます。ビッグデータジョブはJava 8でコンパイルされますが、Java 17に準拠するようパラメーターが設定されています。ビッグデータジョブで使用されるルーチンについては、このコンプライアンスレベルをJava 8に変更できます。

## 手順

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バージョン\]設定。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio-project-settings-java-version.png)

   ビッグデータジョブで使用されるルーチンについては、このルーチンコンプライアンスレベルをJava 8に変更できます。コンパイラーのコンプライアンスレベルの互換性については、[互換性があるJava環境](https://help.qlik.com/talend/ja-JP/installation-guide-windows/Cloud/compatible-java-environments)をご覧ください。
3. Java内部モジュールをさらに設定し、たとえばJava 17でのジョブ実行時に発生する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] (適用して閉じる)をクリックして変更を適用し、ダイアログボックスを閉じます。