文章目录

  • 一、准备工作
  • 二、使用步骤
    • 1.引入Jar包
    • 2.创建工具类
  • 三、可能出现的问题
  • 总结

一、准备工作

1、jdk必须是1.8以上。 2、创建好的Kettle的作业和转换文件

二、使用步骤

1.引入Jar包

2.创建工具类

代码如下(示例):

package test;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;/*** Kettle工具类* @author ZJW**/
public class KettleTrans {public static void main(String[] args) {String fileName="E:\\Kettle_Job\\copy_two_table\\two_to_one.ktr";callKettleTransformation(fileName);}/*** 调用Kettle作业* @param jobFileName*/public static boolean callKettleJob(String jobFileName){try{// 初始化KettleEnvironment.init();// 配置工作文件路径JobMeta jobMeta = new JobMeta(jobFileName,null);Job job = new Job(null,jobMeta);// 调用工作文件job.start();// 刷新job.waitUntilFinished();if(job.getErrors()>0){System.err.println("kettle作业工作文件异常,请校正后重新调用");return false;}else{System.err.println("-----------------------kettle作业工作文件执行成功!-----------------------");return true;}}catch (Exception e) {e.printStackTrace();System.err.println("Kettle作业工作执行失败。");return false;}}/*** 调用Kettle转换* @param jobFileName*/public static boolean callKettleTransformation(String jobFileName){try{// 初始化KettleEnvironment.init();EnvUtil.environmentInit();  // 配置工作文件路径TransMeta transMeta = new TransMeta(jobFileName);Trans  transformation =new Trans(transMeta);// 调用工作文件transformation.execute(null);// 刷新transformation.waitUntilFinished();if(transformation.getErrors()>0){System.err.println("kettle转换工作文件异常,请校正后重新调用");return false;}else{System.err.println("-----------------------kettle转换工作文件执行成功!-----------------------");return true;}}catch (Exception e) {e.printStackTrace();System.err.println("Kettle转换工作执行失败。");return false;}}
}

三、可能出现的问题

1、缺Jar包,在Kettle的lib目录下找即可,如果不知道是哪个jar包,可自行百度。

2、jdk版本过低

更换JDK1.8以上的版本。


总结

个人总结,不喜勿喷。欢迎大佬指导。

Java调用Kettle的作业和转换相关推荐

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

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

  2. java调用kettle批量执行

    java调用kettle批量执行 之前只做了一个java调用单一ktr的例子,在用web程序控制ETL数据抽取过程的时候,难免会遇到要执行一个复选框列表的ktr,那么前段传过来的就不仅仅是一个ktr: ...

  3. java调用kettle自定义kettle.properties配置文件路径

    java调用kettle自定义kettle.properties配置文件路径 默认路径 java调用kettle的jar包时,在初始化环境的时候,会在指定路径创建并加载kettle的kettle.pr ...

  4. JAVA调用GDAL实现影像格式转换,以tif to jpg为例

    前言 本文简单实现java调用GDAL实现影像格式转换. package Marcus.com;import org.gdal.gdal.Dataset; import org.gdal.gdal.D ...

  5. java调用kettle例子_Kettle API - Java调用示例

    Kettle API - Java调用示例 对向前兼容性的推荐:如果想要动态地创造Transformation (例如:从元数据),使用XML文件方法(KTR)而不是使用API.XML文件兼容Kett ...

  6. 【Kettle】作业和转换中的内置变量

    在作业和转换参数中使用Kettle内置变量,可以更方便的工作.下面是Kettle中常用的内置变量: 变量 描述 Internal.Kettle.Version 这是kettle的版本号,比如4.0.0 ...

  7. Java调用ffmepg+mencoder视频格式转换

    PS: ffmpeg.rev12665.7z版本相当老了,有很多命令可能出现错误 其他格式转FLV格式,可以用Java调用ffmpeg和memcoder实现 ffmepg版本:ffmpeg.rev12 ...

  8. JAVA运行Kettle的JOB或者转换的总结

    第一步,连接资源库 本例采用的是单例设计模式,这样做的优点是如果资源库已经连接,则不必重新连接 下面直接上代码 package com.qm.util; import java.io.File; im ...

  9. java调用Kettle返回JSON结果

    所需的jar包,目前我掌握的程度只用这几个就OK了. 第一种  直接调用本地ktr,把结果返回成JSON , 但只支持写死的SQL.(因为JsonOutput控件获取字段的原因.) public cl ...

最新文章

  1. JavaScript语言基础13
  2. grep,但只有特定的文件扩展名
  3. java看log技巧_Log日志框架的学习五.正确使用日志的10个技巧
  4. python2异步编程_最新Python异步编程详解
  5. c++模板之函数模板
  6. 为什么淘宝上同样的东西,专卖店比官方旗舰店便宜?
  7. ssis 创建ssisdb_使用SSIS创建备份
  8. android组建之间通信_android组件间通信有哪些方式
  9. 产品介绍丨世炬5G一体化基站
  10. python语言绘制词云图
  11. 阿里云天池机器学习训练营(Day7, Day8):机器学习算法(三):K近邻(k-nearest neighbors)初探
  12. 【Maven打包报错解决方案】Using ‘UTF-8‘ encoding to copy filtered resources.
  13. python的pynput模块控制鼠标、键盘和监听鼠标、键盘事件
  14. Qt opengl fps相机
  15. txt文档在html中乱码怎么办,txt文件打开显示乱码怎么办?
  16. 室外管线lisp_利用Autocad lisp进行地下管线成果表制作方法的研究
  17. Python爬虫项目--批量爬取公司债券平台网公司信息并下载PDF
  18. 听 小城大事 大城大事 总结出来的故事(上篇)
  19. 华为一碰传nfc标签_NFC标签?NFC碰碰贴?NFC一碰传?只要6块钱4个,嘿嘿~
  20. 解决vue项目路由拦截跳转登录页错误

热门文章

  1. android开发集成百度统计,Android 集成百度统计
  2. 推荐引擎职位_最佳职位搜索引擎
  3. OpenCV-4.5 SURF API
  4. 红外测温相关背景知识与原理
  5. ASE噪声-放大器自发辐射噪声-通俗理解
  6. 一个屌丝程序猿的人生(一百零七)
  7. STM32F407-高级定时器中断功能
  8. 【DIY】用树莓派制作一个便携游戏主机
  9. HoloLens联合发明人:打造理想的全天AR需要解决这些问题
  10. encode和tokenize的区别