package com.kettle.test;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.util.EnvUtil;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
public class TransUtils {
//調用本地的轉換文件(帶參數)
public static void callNativeTransWithParam(String transFileName) {
// 初始化
try {
EnvUtil.environmentInit();
KettleEnvironment.init();
//kettle3.2以後下面這句就不要了
//StepLoader.init();
// 轉換元對象
TransMeta transMeta = new TransMeta(transFileName);
// 轉換
Trans trans = new Trans(transMeta);
String[] params = {};
// 執行轉換
trans.execute(params);
// 等待轉換執行結束
trans.waitUntilFinished();
} catch (KettleException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.kettle.test;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobMeta;
public class JobUtils {
//執行本地的任務文件
public static void callNativeJob(String jobFileName) {
try {
KettleEnvironment.init();
//jobname 是Job腳本的路徑及名稱
JobMeta jobMeta = new JobMeta(jobFileName, null);
Job job = new Job(null, jobMeta);
//向Job 腳本傳遞參數,腳本中獲取參數值:${參數名}
//job.setVariable(null, null);
job.start();
job.waitUntilFinished();
if (job.getErrors() > 0) {
System.out.println("decompress fail!");
}
} catch (KettleException e) {
System.out.println(e);
}
}
}
package com.kettle.test;
public class Test {
/**
* @param args
* @throws KettleException
*/
public static void main(String[] args){
// TODO Auto-generated method stub
String JUPath="./file/201505111343.kjb";
String TUPath="./file/201505111306.ktr";
//TransUtils.callNativeTransWithParam(TUPath);
JobUtils.callNativeJob(JUPath);
System.out.println("wq vb !");
}
}