手順
-
Talend Studioのメインウィンドウのツールバーで
をクリックするか、メニューバーで[File] (ファイル) > [Edit Project Properties] (プロジェクトプロパティを編集)とクリックして[Project Settings] (プロジェクト設定)ダイアログボックスを開きます。
-
Buildノードを展開し、[Java Version] (Javaバージョン)をクリックして、該当するビューを開きます。
[JDK Compiler compliance level] (JDKコンパイラーのコンプライアンスレベル)ドロップダウンリストで、Talend StudioのJDKコンパイラーのコンプライアンスレベルが1.8であることを確認できます。
コンパイラーのコンプライアンスレベルは、ジョブコードの生成に使用したJavaバージョンに対応します。コンパイラーのコンプライアンスレベルの互換性については、互換性があるJava環境をご覧ください。
-
Talendが提供する8.0 R2022-12以降のStudioマンスリーアップデートをインストール済みである場合は、[Allow Jobs to access internal Java fields and methods if required] (必要であればジョブに内部のJavaフィールドとメソッドへのアクセスを許可)チェックボックスを選択すれば、Javaの不正な反射アクセス操作エラーを防ぎ、どのジョブにも実行で必要となるJava依存項目が必ず揃うようにできます。
[Module access settings] (モジュールアクセスの設定)エリアでは、Talendコンポーネント、Talend Component Kitフレームワーク、Big DataディストリビューションのJava内部モジュールが[Default] (デフォルト)タブに設定されます。[Custom] (カスタム)タブでは、カスタムコンポーネントのJava内部モジュールと、すべてのジョブとルートのグローバルなJava内部モジュールを設定できます。
[Allow Jobs to access internal Java fields and methods if required] (必要であればジョブに内部のJavaフィールドとメソッドへのアクセスを許可)オプションを選択すれば、ジョブがJava 11またはJava 17でそれぞれ実行された時に発生するJVM警告と致命的エラーの数を削減できます。
このパラメーターを追加しない場合に発生するエラーの例:
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
この方法でビルドされたジョブをJava 8で実行することはできません。
- [Apply and Close] (適用して閉じる)をクリックして変更を適用し、ダイアログボックスを閉じます。