java 执行 kettle5.0.1 转换与工作

package com.kettle.test;

import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.util.EnvUtil;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;

public class TransUtils {
    //调用本地的转换文件(带参数)
    public static void callNativeTransWithParam(String transFileName) {
        // 初始化
        try {
            EnvUtil.environmentInit();
            KettleEnvironment.init();
            //kettle3.2以后下面这句就不要了
            //StepLoader.init();
            // 转换元对象
            TransMeta transMeta = new TransMeta(transFileName);
            // 转换
            Trans trans = new Trans(transMeta);
            String[] params = {};
            // 执行转换
            trans.execute(params);
            // 等待转换执行结束
            trans.waitUntilFinished();
        } catch (KettleException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

package com.kettle.test;

import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobMeta;

public class JobUtils {
    //执行本地的任务文件
    public static void callNativeJob(String jobFileName) {
        try {
            KettleEnvironment.init();
            //jobname 是Job脚本的路径及名称  
            JobMeta jobMeta = new JobMeta(jobFileName, null);
            Job job = new Job(null, jobMeta);
            //向Job 脚本传递参数,脚本中获取参数值:${参数名}  
            //job.setVariable(null, null);
            job.start();
            job.waitUntilFinished();
            if (job.getErrors() > 0) {
                System.out.println("decompress fail!");
            }
        } catch (KettleException e) {
            System.out.println(e);
        }
    }  
}

package com.kettle.test;

public class Test {

/**
     * @param args
     * @throws KettleException
     */
    public static void main(String[] args){
        // TODO Auto-generated method stub
        String JUPath="./file/201505111343.kjb";
        String TUPath="./file/201505111306.ktr";
        //TransUtils.callNativeTransWithParam(TUPath);
        JobUtils.callNativeJob(JUPath);
        System.out.println("wq vb !");
    }
}

时间: 2024-10-10 08:56:01

java 执行 kettle5.0.1 转换与工作的相关文章

使用json-lib进行Java和JSON之间的转换

1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能. 2. json-lib 主页 : http://json-lib.sourceforge.net/ 3.执行环境 需要以下类库支持 jakarta commons-lang 2.5 jakarta commons-beanutils 1.8.0 jakarta commons-collections 3

优秀Java程序员必须了解的GC工作原理

一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能. 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能.本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行

【转】优秀的Java程序员必须了解GC的工作原理

一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能.一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能.本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行深

使用json-lib进行Java和JSON之间的转换【转载】

1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能. 2. json-lib 主页 : http://json-lib.sourceforge.net/ 3.执行环境 需要以下类库支持 jakarta commons-lang 2.5 jakarta commons-beanutils 1.8.0 jakarta commons-collections 3

【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)

一年前,从不知道Ajax是什么,伴随着不断的积累,到如今常常使用,逐渐有了深入的认识. 今天,假设想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在具体讨论Ajax是什么之前,先让我们花一分钟了解一下Ajax做什么.如图所看到的: 如上图展示给我们的就是使用Ajax技术实现的效果.伴随着web应用的越来越强大而出现的是等待.等待server响应,等待浏览器刷新.等待请求返回和生成新的页面成为了程序猿们的最最头疼的难题.随着Ajax的出现使web应用程序变得

【转】使用json-lib进行Java和JSON之间的转换

原文链接:http://www.cnblogs.com/mailingfeng/archive/2012/01/18/2325707.html 1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能. 2. json-lib 主页 : http://json-lib.sourceforge.net/ 3.执行环境 需要以下类库支持 jakarta common

Java+Windows+ffmpeg实现视频转换

最近由于项目需要,研究了一下如何用Java实现视频转换,“着实”废了点心思,整理整理,写出给自己备忘下. 思路 由于之前没有没法过相关功能的经验,一开始来真不知道从哪里入手.当然,这个解决,google一下立马就发现了ffmpeg,网上讲解用Java+ffmpeg来进行视频转换的文章也不在少数,我主要参考的这篇文章. 上文提到的这篇文章,基本已经把开发流程什么的讲的很清楚了,这里总结下: 1)核心是利用ffmpeg进行视频转换,我们自己并不写转换视频的代码,只是调用ffmpeg,它会帮我们完成视

记Android R(SDK=30)系统执行UiAutomator1.0异常

最近Android发布了AndroidStudio 3.6稳定版,升级后明显能体验到好多细节的提升,最大的提升莫过于可以创建Android R预览版的模拟器了,并且模拟器可以设置多个尺寸的屏幕.Android R的xm6模拟器可以直接运行arm架构的程序,以后开发过程中再也不用为测试机担忧了.但是在执行UiAutomator1脚本时就存在了不兼容问题. 异常情况 但是在使用Android R模拟器进行开发工作中发现执行UiAutomator1.0脚本出现如下异常: Warning: This v

在 java 1.8.0 版本的环境下,进行 android apk 的签名操作

注:文章参考了 android 开发者社区的签名指引说明文章,但由于在国内 android 开发者社区已经无法正常访问,因此在这里做下记录. 地址:http://developer.android.com/tools/publishing/app-signing.html#considerations 在开发 android 应用程序的时候,到最后程序都需要进行签名后才可以发布,目前针对 android 应用开发的 ide 一般都会自带了签名的功能,例如 android studio.eclip