メイン コンテンツをスキップする 補完的コンテンツへスキップ

Talend StudioでJavaを設定

Talendが提供する8.0 R2022-12以降のTalend Studioマンスリーアップデートをインストール済みである場合は、ジョブをTalend Studioの内部Javaフィールドとメソッドにアクセスさせるかどうか設定できます。

手順

  1. Talend Studioのメインウィンドウのツールバーで[Project settings] (プロジェクト設定)をクリックするか、メニューバーで[File] (ファイル) > [Edit Project Properties] (プロジェクトプロパティを編集)とクリックして[Project Settings] (プロジェクト設定)ダイアログボックスを開きます。
  2. Buildノードを展開し、[Java Version] (Javaバージョン)をクリックして、該当するビューを開きます。
    [プロジェクト設定]ダイアログボックス内の[Javaバージョン]設定。

    [JDK Compiler compliance level] (JDKコンパイラーのコンプライアンスレベル)ドロップダウンリストで、Talend StudioのJDKコンパイラーのコンプライアンスレベルが1.8であることを確認できます。

    コンパイラーのコンプライアンスレベルは、ジョブコードの生成に使用したJavaバージョンに対応します。コンパイラーのコンプライアンスレベルの互換性については、互換性があるJava環境をご覧ください。

  3. R2023-10 以降の場合[Enable Java 17 compatibility] (Java 17互換性を有効にする)を選択するか、R2022-12 から R2023-08の場合[Allow Jobs to access internal Java fields and methods if required] (必要に応じてジョブが内部Javaフィールドおよびメソッドにアクセスできるようにする)チェックボックスを選択して、Java 17の互換性を有効にするか、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
    --add-opensパラメーターはまた、独立したものとして設定されているすべてのtRunJobに対してJavaコマンドで追加されます。その結果、これらの新しいパラメーターがJVMに渡されるよう、ジョブをすべて再ビルドする必要があります。再ビルドしないと、これらのパラメーターは欠落し、独立したサブジョブが含まれているジョブは実行時に失敗します。

    この方法でビルドされたジョブをJava 8で実行することはできません。

  4. [Apply and Close] (適用して閉じる)をクリックして変更を適用し、ダイアログボックスを閉じます。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。