虽然网上文章有说java可以传递参数给kettle,不过只找到了传递参数给转换的文章,没有讲参数传递给job,kettle中如何使用java传递的参数。今天就以上问题,一并共享。

/**

* 本测试类慎用!!!!!!!

*

* @param args

*/

public static void main(String[] args) {

String datetime = "2014-12-19 23:20:45";

String[] params = {"707", datetime}; // 传递参数

String path = "F:\\job7.kjb";

//runTransfer(params, path);

runJob(params, path);

// runJob();

//jbResource();

}

/**

* 运行转换文件方法

* @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();

}

}

/**

* 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]);

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();

}

}

以上是片段。实现了调用任务和转换的方法,我只给出了调用任务和转换文件的方法,连接数据库的在此略过。

下面就是如何使用java传递的参数了。

转换的网上有例子,转换工作台,打开输入,找到“获取系统信息”

进行变量定义,选择命令参数1。。。n即可

就可以引用我示例中的1,2参数了。

但是我们的迁移工作是要按顺序执行的,调用转换不够用,需要job来定义执行顺序,

比如上面的转换作为第一步,操作完进行其他步骤,那么在这个基础上,可以画一个job

这时候问题来了,我们要活得java的数据,同时这个job需要把参数传递给test2转换使用。

其实很简单,点开test2,切换到参数选型,将java定义的参数写进去,记住带{}

这样就大功搞成了。java已经能够顺利的将值传递给job,job可以顺利的将值传递给转换。

点击run this job 在variable中定义参数名称跟java传递的参数一致,可以写值进行测试。

注意事项:任务和转换要存成文件格式,任务中引用的转换也要是文件格式,

否则就都需要数据库支撑,数据库方法调用了。

原文:http://blog.csdn.net/dirful/article/details/42026545

java 调用kettle job 传参_java调用kettle向job(任务)和transformation(转换)传递参数实例...相关推荐

  1. 请求体的方式传参_Angularjs中$http以post请求通过消息体传递参数的实现方法

    本文实例讲述了Angularjs中$http以post请求通过消息体传递参数的方法.分享给大家供大家参考,具体如下: Angularjs中,$http以post在消息体中传递参数,需要做以下修改,以确 ...

  2. java调用c传参_JAVA 调用C 语言程序,并且进行传参收结果等操作

    import java.io.*; import java.lang.*; class test3{ public static void main(String []args) throws IOE ...

  3. java注解 自定义策略传参_Java注解教程及自定义注解

    Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...

  4. java中位运算传参_java基础之位运算讲解于实战

    一.基础知识点概括 在查看源码中,经常会看到很多这样的符号"&"."|"."-","^","<& ...

  5. java中注解动态传参_Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)...

    Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)java 前言:因为前段时间忙于写接口,在接口中须要作不少的参数校验,本着简洁.高效的原则,便写了这个小工具供本身使 ...

  6. java调用python,传参json字符串,含中文传参

    java调用python,传参json字符串 python脚本内容(test.py) # -*- coding: utf-8 -*-def main(input):return input java调 ...

  7. js调用java_Js调用Java方法并互相传参的简单实例

    Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. public class PluginTest extends P ...

  8. js调java并传参_Js调用Java方法并互相传参的简单实例

    Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...

  9. keras框架入门学习(一)——argparse传参模块调用

    keras框架入门学习(一)--argparse传参模块调用 一.argparse模块简介 1.1 argparse的定义 1.2 argparse的优势 二.argparse模块使用 2.1 实现[ ...

最新文章

  1. 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute
  2. 【bzoj4698】[Sdoi2008] Sandy的卡片 后缀数组
  3. CodeFirst EF中导航属性的个人理解
  4. [leetcode]104.二叉树的最大深度
  5. Source Insight常用快捷键
  6. P6805-[CEOI2020]春季大扫除【贪心,树链剖分,线段树】
  7. 双胞胎一个上北大一个上清华,秘诀6个字!还有女生收到清华通知书说“考砸了”……...
  8. vs运行html没有注册类,解决win10运行com提示“错误代码 80040154-没有注册类”的方法...
  9. 堆区和方法区的小认识
  10. V270文件存储服务器,天堂2V270 服务端和客户端
  11. Hive建表语句批量导出导入
  12. Flutter灰色页面/灰色图片(滤镜)
  13. 自定义Unity调色板
  14. P5144 蜈蚣 (线性DP)
  15. Robcup2D足球学习记录【2020.01.30】
  16. AD软件——把原理图库 和 PCB元件库封装模型 关联起来
  17. C语言学习(三)运算符、表达式和语句
  18. python爬虫股票市盈率_量化交易的第一步,Python爬取股票数据
  19. 开源的多媒体播放器MPV
  20. 微信小程序引用阿里云图标的方法

热门文章

  1. 三维曲面图像绘制(光照控制)
  2. 0497计算机组成原理在线作业,0497《 综合实践活动课程设计》20秋西南大学在线作业答案...
  3. pythondocx更新目录_python根目录
  4. android搜索框布局文件,android搜索框列表布局,流程及主要步骤思维导图
  5. c++判断一个字符串里面有特殊符号_简单动态字符串(SDS)
  6. Apache Log4j2 远程代码执行高危漏洞 解决方案
  7. 电脑安装ubuntu linux操作系统
  8. Java基础教程【第九章:异常处理】
  9. stm32按键矩阵代码_STM32学习日志——电容触摸按键实验(20-06-27)
  10. etcd nginx 容器_Etcd+confd实现动态修改nginx文件