先说正事:
Java 操作 Kettle 的 job 、trans需要的jar,在kettle的安装目录下可以找到,如,我本地的安装路径如下图所示,在安装目录下的jar中查找需要使用的jar。就这破玩意,还费劲的从csdn下载,需要¥。还是自己动手,丰衣足食啊
相关代码:
我的代码也是抄的。
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.exception.KettleXMLException;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobMeta;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
public class Demo {
public static void runJob(String jobname) {
try {
KettleEnvironment.init();
// jobname 是Job脚本的路径及名称
JobMeta jobMeta = new JobMeta(jobname, null);
Job job = new Job(null, jobMeta);
// 向Job 脚本传递参数,脚本中获取参数值:${参数名}
// job.setVariable(paraname, paravalue);
job.start();
job.waitUntilFinished();
if (job.getErrors() > 0) {
System.out.println("decompress fail!");
}
} catch (KettleException e) {
System.out.println(e);
}
}
// 调用Transformation示例:
public static void runTrans(String filename) {
try {
KettleEnvironment.init();
TransMeta transMeta = new TransMeta(filename);
Trans trans = new Trans(transMeta);
trans.prepareExecution(null);
trans.startThreads();
trans.waitUntilFinished();
if (trans.getErrors() != 0) {
System.out.println("Error");
}
} catch (KettleXMLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KettleException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
String jobname = "D:\\software\\0000.kjb";
runJob(jobname);
// String filename="D:\\software\\client.ktr";
// runTrans(filename);
}
}