# より新しいJavaバージョンを使用

ベストプラクティスは、サポートされているJavaの最新バージョンと共にTalend製品を使用することです。

## 始める前に

自分の製品によって使用されているJavaのバージョンをアップグレードする手順については、[Talendの全サービスでJavaをアップグレード](https://help.qlik.com/talend/ja-JP/migration-upgrade-guide/8.0/upgrading-java-for-all-talend-services-on-windowson-linux "Javaをアップグレードすれば、セキュリティ問題を回避できます。この操作には、TalendサービスでJavaのマイナーまたはメジャーアップデートが必要となるさまざまなステップがあります。また、マイナーダウングレードの場合もこの手順が必要です。")をご覧ください。

## このタスクについて

この手順では、より新しいバージョンのJava(Java 17またはJava 21)を使用するようにTalend環境をアップグレードする方法について説明します。

情報メモヒント: Java 21のサポートは、Talend 8.0.1-R2026-06以降のバージョンで利用可能です。

## 手順

1. お使いのTalend Remote EngineインスタンスとTalend JobServerインスタンスがアップグレード後のJavaのバージョンをサポートしていることを確認してください。

   Talend Remote EngineおよびTalend JobServerの最新バージョンは、起動にJava 17またはJava 21が必要ですが、他のJavaバージョンを使用するジョブも実行できます。

   エンジンまたはJobServerの起動に使用するJavaバージョンを変更する方法の詳細については、以下をご覧ください。
   * [Remote EngineサービスのJavaインスタンスを変更](https://help.qlik.com/talend/en-US/installation-guide-linux/Cloud/java-setup-and-pptimization-for-remote-engine-service#changing-java-instances-for-remote-engine-service)
   * [JobServer用のJVMの設定](https://help.qlik.com/talend/ja-JP/installation-guide-linux/8.0/configuring-jvm-for-your-talend-jobserver#specify-the-jvm-version-for-your-talend-jobserver)
2. Talend Remote EngineインスタンスおよびTalend JobServerインスタンスで使用するJDKのバージョンを構成して、より新しいJavaバージョン(17または21)へのアップグレード中に既存のジョブがすべて引き続き実行されるようにします。各インスタンスについて、各アーティファクトのJava互換性に合わせてJDKバージョンを設定します。
   * Java 8が必要なジョブが存在する場合は、それらのジョブに対してJava 8を設定します。Java 17またはJava 21に対応しているジョブについては、適切なJavaバージョンを設定してください。
   * すべてのジョブがJava 17またはJava 21に対応している場合は、そのJavaバージョンのみを設定します。

   上記は、Javaを設定する際に考慮すべき最も一般的なシナリオです。古いバージョンでは、それぞれ異なるJavaバージョンを、複数のエンジンまたはJobServerインスタンスを並行して実行する必要がある場合があります。

   ただし、最新のTalend Remote EngineおよびTalend JobServerバージョンはどちらも、動的なJVM選択モードに対応しています。このモードでは、実行するアーティファクトのJava互換性レベルに基づいて、適切なJavaインスタンスが自動的に選択されます。このJVM選択モードの設定方法については、以下をご覧ください。
   * [適用モード: Javaバージョンを動的に選択するようRemote Engineを設定](https://help.qlik.com/talend/ja-JP/remote-engine-user-guide-linux/Cloud/configure-java-versions-for-job-execution-or-microservice-execution#configure-dynamic-adaptive-jvm-versions-for-job-execution-or-microservice-execution)をご覧ください。
   * [適用モード: Javaバージョンを動的に選択するようTalend JobServerを設定](https://help.qlik.com/talend/ja-JP/installation-guide-linux/8.0/configuring-jvm-for-your-talend-jobserver#configure-dynamic-adaptive-jvm-versions-for-jobserver-to-run-jobs)をご覧ください。

   この設定により、単一のエンジンまたはJobServerインスタンスで、異なるJavaバージョンを使用してジョブを実行することができます。
3. ルートまたはデータサービスを使用している場合、Talend Studio R2025-02以降でOSGiとしてビルドされたアーティファクトは、 Talend Runtime 8.0.1-R2025-02-RT以降のバージョンとしか互換性がありません。
   * Talend 8.0でルートやデータサービスをすべてマイクロサービスとしてビルド済みであれば、Java 11、Java 17、Java 21で実行できます。R2025-02リリースからビルドされたルートやデータサービスを実行するためには、Java 17以上が必要です。R2026-06以降でビルドされたルートおよびデータサービスは、Java 21で実行できます。

   * OSGiとしてビルドされたルートやデータサービスを使用している場合は、R2025-02からCamel 4を使用する Talend Runtimeをインストールする必要があります。また、Talend Remote Engineがアーキテクチャーの一部である場合は、Talend Remote Engineの新しいバージョンをインストールすることも必要です。詳細は、[Talend Runtimeのフルインストールを手動で移行](https://help.qlik.com/talend/ja-JP/installation-guide-linux/Cloud/manual-migration-of-a-full-talend-runtime-installation)と[Talend Remote Engineをアップグレード](https://help.qlik.com/talend/ja-JP/installation-guide-linux/Cloud/upgrading-remote-engine-intro)をご覧ください。

     Camel 3 Talend Runtimeを実行を続ける一方で、ルートとデータサービスを段階的に再ビルドし、Camel 4を使用してJava 17またはJava 21で動作する新しい Talend Runtimeに再デプロイすることもできます。これは、 Talend RuntimeがCamelの1つのバージョンしか処理できないこと、そしてCamel 4がJavaのバージョン17以下とは互換性がないことが理由です。

     ルートおよびデータサービスで使用している既存のカスタムコードや外部ライブラリを必ずテストおよび更新し、Camel 4との互換性を確認してください。
4. Talend Studioをアップグレードします。

   どのジョブもJava 17またはJava 21で実行可能であれば、Java 17またはJava 21のみでジョブをビルドおよび実行するTalend Studioのバージョンにアップグレードできます。

   新しいJavaバージョンで実行できないジョブがある場合は、Java 8でジョブのビルドをサポートしているTalend Studioバージョンを引き続き使用し、別のTalend Studioインスタンスでより新しいJavaバージョン(17または21)を使ってすべてのジョブを段階的に再ビルドします。

   情報メモ重要: Java 8をサポートするTalend Studioのバージョンは、期間限定で保守されます。Java 8を使用している場合は、お使いの環境の継続的なサポートを実現するため、できるだけ早くより新しいJavaバージョン(Java 17またはJava 21)に移行することをお勧めします。Java 21は、Talend 8.0.1-R2026-06以降で推奨されるJavaバージョンです。
5. アーティファクトを段階的に再ビルドして、より新しいJavaバージョン(Java 17またはJava 21)でネイティブに実行できるようにします。

   ベストプラクティスは、まずルートとデータサービスを再構築し、次に頻繁に変更されるジョブを再ビルドし、最後に残りのアーティファクトを再ビルドすることです。

   デフォルトでは、ルーチンは引き続きJava 8準拠でビルドされます。必要に応じて、ルーチンをJava 17またはJava 21にアップグレードできます。ビッグデータジョブでは、ターゲットクラスターのJavaバージョンと互換性のあるJavaバージョンでコンパイルされたルーチンが必要となります。Java 8でルーチンを実行する柔軟性により、新しいJavaバージョンをまだサポートしていないビッグデータ技術に対応します。詳細は、[コンパイラーのコンプライアンスレベルを設定](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/setting-compiler-compliance-level)をご覧ください。