(1).将相应的kettle的jar包导入的java项目,主要的jar包有一下几个。

(2).java程序。

package cn.com.taiji.oosweb.test.web;

import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.util.EnvUtil;
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 test {
//public static void main(String[] args) throws IOException {
//
// String basename = "cn.com.taiji.oosweb.test.web.common";
// Locale currentLocale = Locale.getDefault();
//
// Locale cn = Locale.CHINA;//中文
// Locale us = Locale.US;//英文
// ResourceBundle myResourcesCN = ResourceBundle.getBundle(basename,cn);
//
// String usernameCN = myResourcesCN.getString("close");
// System.out.println(usernameCN);
//}

//public void readResources() throws IOException{
// InputStream is = this.getClass().getResourceAsStream("/conf/common.properties");
// System.out.println((char)is.read());
// is.close();
//}

/**
* 本测试类慎用!!!!!!!
*
* @param args
*/
public static void main(String[] args) {
String datetime = "2014-12-19 23:20:45";
String[] params = {"707", datetime}; // 传递参数
String path = "C:\\Users\\administor\\Desktop\\kettle\\kettleTest.kjb";
for (int i = 0; i < 3; i++) {
params[0] += i;
runJob(params, path);
}
}

/**
* java 调用 kettle 的job
*
* @param jobname
* 如: String fName= "D:\\kettle\\informix_to_am_4.ktr";
*/
public static void runJob(String[] params, String jobPath) {
try {
KettleEnvironment.init();
// jobname 是Job脚本的路径及名称
JobMeta jobMeta = new JobMeta(jobPath, null);
Job job = new Job(null, jobMeta);
// 向Job 脚本传递参数,脚本中获取参数值:${参数名}
// job.setVariable(paraname, paravalue);
job.setVariable("id", params[0]);
System.err.println(params[0]+"=========="+params[1]);
job.setVariable("dt", params[1]);
job.start();
job.waitUntilFinished();
if (job.getErrors() > 0) {
throw new Exception(
"There are errors during job exception!(执行job发生异常)");
}
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 运行转换文件方法
* @param params 多个参数变量值
* @param ktrPath 转换文件的路径,后缀ktr
*/
public static void runTransfer(String[] params, String ktrPath) {
Trans trans = null;
try {
// // 初始化
// 转换元对象
//KettleEnvironment.init();// 初始化
EnvUtil.environmentInit();
TransMeta transMeta = new TransMeta(ktrPath);
// 转换
trans = new Trans(transMeta);

// 执行转换
trans.execute(params);
// 等待转换执行结束
trans.waitUntilFinished();
// 抛出异常
if (trans.getErrors() > 0) {
throw new Exception(
"There are errors during transformation exception!(传输过程中发生异常)");
}
} catch (Exception e) {
e.printStackTrace();
}
}

}

(3).kettle的画法。

1.

2.

3.

java程序调用kettle的更多相关文章

  1. java程序调用存储过程

    java程序调用存储过程       PL/SQL子程序,很多情况下是给应用程序来调用的,所有我们要掌握使用其他编程语言来调用我们写好的存储过程.下面我们介绍下使用java调用Oracle的存储过程. ...

  2. java程序调用存储过程和存储函数

    java程序调用存储过程 jdbcUtil.java文件 package cn.itcast.oracle.utils; import java.sql.Connection; import java ...

  3. 通过java程序调用ant build.xml配置文件中指定的target

    一.概述 通过ant实现项目的自动化部署,jar包生成,替换,tomcat关停.启动,查看项目日志: 通过java程序调用已编辑好的ant脚本build.xml配置文件中指定的target: 文中文件 ...

  4. 【原】Java程序调用远程Shell脚本

    此程序的目的是执行远程机器上的Shell脚本. [环境参数]远程机器IP:192.168.234.123用户名:root密码:rootShell脚本的路径:/home/IFileGenTool/Bak ...

  5. Java程序调用带参数的shell脚本返回值

    Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量(\(#,\)@,$0,$1,\(2)的含义解释 变量说明: -  \)$  Shell本身的PID(ProcessI ...

  6. java中调用kettle转换文件

    java中调用kettle转换文件 通过命令行也能够调用,然后java中调用命令行代码也能够.这样没有和java代码逻辑无缝集成.本文说明kettle5.1中假设通过其它API和java代码无缝集成: ...

  7. 转载:java程序调用内存的变化过程

    前文知道了java程序运行时在内存中的大概分布,但是对于具体程序是如何运行的,看到一篇文章,直接转载过来. (一)不含静态变量的java程序运行时内存变化过程分析 代码: package oop; / ...

  8. (转)java程序调用内存变化过程分析(详细)

    原博地址: https://blog.csdn.net/Myuhua/article/details/81385609 (一)不含静态变量的java程序运行时内存变化过程分析 代码: package ...

  9. 用java程序调用批处理文件

    用java程序执行批处理文件并打印出控制台信息: public class test { public static void main(String[] args) { try { //执行批处理文 ...

随机推荐

  1. Windows录音API学习笔记

    Windows录音API学习笔记 结构体和函数信息  结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { WORD      wMid; 用于波形 ...

  2. C#时间的味道——任时光匆匆我只在乎你

    如果没有遇见你,我将会是在哪里?日子过的怎么样人生是否要珍惜...任时光匆匆我只在乎你,心甘情愿感染你的气息,人生几何能得到知己...一首邓丽君的<我只在乎你>不禁令我唏嘘不已,这些年离我 ...

  3. js知识梳理1:理解对象的属性特性

    1.数据属性 数据属性的4个特性: Configurable:①表示能否通过delete删除属性从而重新定义,②能否修改属性的特性,③能否把属性修改为访问器属性.对象直接量里默认值true. Enum ...

  4. 算法笔记_099:蓝桥杯练习 算法提高 排列数(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 0.1.2三个数字的全排列有六种,按照字母序排列如下: 012.021.102.120.201.210 输入一个数n 求0~9十个数的全排 ...

  5. 【BIEE】MDS-01377:无法从使用 JNDI 名称 “jdbc/mds/owsm” 配置的数据源获取数据库连接

    这是一次意外关机情况,BIEE环境是window server2008,但是一次意外情况,BIEE自动关机了,造成开启成功新启动BIEE产生如下错误: 错误产生后,倒腾了半天,并没发现什么问题,只是通 ...

  6. hibernate 1 + N 问题解决

    1+N就是在hibernate中第一次查一个所需要的表的内容,他会把别的相关表的内容也查询一遍.   解决办法有三种: 1,设置LAZY. 2,借鉴createCriteria的查询语句,from T ...

  7. jBoss设置jvm参数

    jBoss版本: jboss-5.1.0.GA jboss-6.0.0.Final   jboss-5.1.0.GA和jboss-6.0.0.Final修改方法: 打开%JBOSS_HOME%\bin ...

  8. Struts2架构分析和执行机制

    实例分析 1.在浏览器中输入url地址后,会通过http协议发送给tomcat,tomacat收到请求后查看訪问的是哪个 webapplication(例如以下图的Struts2_0100_Intro ...

  9. .NET面试题(二)

    基础方面: 1.简单的描述一下C# 中重写,重载,隐藏的概念 C#中重写(overide)是子类继承父类后,对父类中的方法进行行为改写. 重载是指方法名相同,参数不同 重写和隐藏的定义: 重写:基类方 ...

  10. FreeSWITCH小结:呼叫的发起与跟踪

    需求描述 虽然现有的FreeSWITCH功能已经很强大,但是很多情况下,为了配合业务上的功能,还需要做一些定制开发. 有一个基本需求是:如何控制fs外呼,并跟踪外呼后的一系列状态. 解决方案 下面我就 ...