[Talend]Javaのバージョンを切り替える方法

2016.08.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Talendジョブの実行環境のJavaのバージョンを確かめないと予期せぬ動作をすることがあります。
テスト中はTalendから直接ジョブを実行することが多いと思いますが、TalendのJavaのバージョンの切り替え方を今回はご紹介します。

TalendでS3にアップロードできない現象

Talend(Version6.0.0)でジョブを作成してたのですが、tS3Putコンポーネントを使用したところ、以下のようなエラーが出てS3にファイルをアップロードする処理がうまく動きませんでした。

AWS authentication requires a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 6129E4F483616F91)

エラーメッセージでググって原因を調べてみるとどうやらJavaのバージョンによって起きる可能性がある不具合だというところまでは、予測がつきました。

AWS Java SDK - AWS authentication requires a valid Date or x-amz-date header stackoverflow

で、システム環境変数からJavaのバージョンを1.7に変更してTalendを再起動しても同様のエラーが発生しました。
tJavaコンポーネントを使用してJavaのバージョンを表示してみると、1.8と表示されました。

System.out.println(System.getProperty("java.version"));

※ちなみにTalendのバージョン6.2.0以降を使用する場合はJavaのバージョンが1.8でも問題なくtS3Putコンポーネントは動きます。

TalendのJob実行環境のバージョンを切り替える

今回は、テストでTalend上でジョブを実行してたから上記のエラーが起こっていた(システム環境変数を1.7に変更後、エクスポートしたジョブをコマンドラインで実行したところ、S3へのアップロードは動作しました)わけで、Talend上で動いているJavaのバージョンを切り替えないといけないわけですね。
簡単ですが、意外とわかりにくいところにありましたので、TalendのJava実行環境のバージョンを切り替える方法について以下に記しておきます。

※Windows環境での操作方法となります。

ウィンドウ→Prefrencesを選択
yura_2016083001

TalendタブのJavaインタプリタを変更
yura_2016083002

これだけの操作でOKです。
バージョンを7に切り替えることによって無事S3にアップロードできることが確認できました。