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

ランタイムにオペレーティングシステムを検出してファイルパスをダイナミックに設定

さまざまなオペレーティングシステムでジョブを実行できるには、以下のジョブの例のように、コンテキスト変数を使ってファイルパスを設定できます。

このジョブは以下のもので構成されています:

  • コンテキスト変数を初期化して、オペレーティングシステムを検出するtJavaコンポーネント、
  • データを生成するtFixedFlowInputコンポーネント、
  • .txtファイルを生成するtFileOutputDelimitedコンポーネント。

手順

  1. DetectOSTypeDemoという名前の新しいジョブを作成して、[Palette] (パレット)からtJavaコンポーネントをワークスペースに配置します。
  2. ワークスペース上にtFixedtFlowInputtFileOutputDelimitedを配置して、[Row main] (行メイン)リンクを使って、それらを接続します。[Trigger > On Subjob Ok] (トリガー > サブジョブがOKの場合)リンクを使って、tJavaコンポーネントをtFixeFlowInputコンポーネントに接続します。
  3. tJavaコンポーネントをクリックし、その[Basic settings] (基本設定)ビューを開き、[Code] (コード)エリアに以下のコードを追加して、コンテキスト変数を初期化およびオペレーティングシステムを検出します:
    String os = System.getProperty("os.name").toLowerCase();  
    if(os.indexOf("win") >= 0){
    context.filePath="C:/temp/out.txt";
    }else { //Unix / Linux file path
    context.filePath="/var/temp/out.txt";
    }
  4. tFixedFlowInputコンポーネントをクリックして、[Basic settings] (基本設定)ビューを開きます。
  5. [Edit schema] (スキーマを編集)ボタンをクリックして、nameという名前の新しいカラムを追加します。[Values] (値)ボックスに、"Hello world"という値を追加して、出力データを以下のように生成します。
  6. 次の図に示すように、コンポーネントの[Contexts] (コンテキスト)ビューで、コンテキスト変数(String型であるfilePathという名前)を作成して、出力ファイルのパスを設定します。
  7. tFixedtFlowInputのコンポーネントビューをクリックし、次のcontext.filePathというコンテキスト変数を使って、[File Name] (ファイル名)フィールドでファイル名を設定します。
  8. ジョブを実行します。ジョブがWindowsシステムで実行される場合、データは"C:/temp/out.txt"ファイルに書き込まれます。ジョブがUnixシステムまたはLinuxシステムで実行される場合、データは"/var/temp/out.txt"ファイルに書き込まれます。

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

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