首先,需要引入jar包。
第二步,编写java类
package java2cettle;
import org.pentaho.di.core.KettleEnvironment;import org.pentaho.di.core.Result;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.logging.LogWriter;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobMeta;
import org.pentaho.di.repository.RepositoryDirectoryInterface;
import org.pentaho.di.repository.filerep.KettleFileRepository;
import org.pentaho.di.repository.filerep.KettleFileRepositoryMeta;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
public class JAVA2Cettle01 {
public static void main(String[] args) throws KettleException{
//初始化kettle环境及参数
KettleEnvironment.init();
//初始化资源库对象的位置
KettleFileRepositoryMeta repinfo = new KettleFileRepositoryMeta("","","kettle-zyk","D://kettle-4.2/ketlle-zyk");
//获得文件资源库对象
KettleFileRepository rep = new KettleFileRepository();
//System.out.println(rep.getTransformationID(transNmae,"D://kettle-4.2/ketlle-zyk"));
// rep.init(repinfo);
//初始化kettle转换对象
//====================执行转换=====================
//取得转换元对象
String transNmae="D://kettle-4.2/ketlle-zyk/ketlle-test01.ktr";
TransMeta transMetadel = new TransMeta(transNmae);
//进行转换
Trans trans=new Trans(transMetadel);
trans.execute(null);
// 等待转换执行结束
trans.waitUntilFinished();
//================执行job任务===================
String jobName="D://kettle-4.2/ketlle-zyk/lettle-test01-job.kjb";
LogWriter logs=LogWriter.getInstance("kettlelog.log", true);
JobMeta jobelement=new JobMeta(jobName,null);
Job job=new Job(null,jobelement);
job.start();
job.waitUntilFinished();
}
}