烦请哪位大神指导下怎么实现java调用kettle来执行指定的KTR或者KJB文件?

发布于 2021-11-30 14:31:07 字数 1341 浏览 754 评论 2

自己写了个程序,但是调用指定ktr文件时会报错:DatabaseJoin不能识别,错误如下:

Unable to load class for step/plugin with id [DatabaseJoin]. Check if the plugin is available in the plugins subdirectory of the Kettle distribution.

附上调用程序:

  public static void main(String arg[]) throws Exception 
   {
//       String idname="6";//作为参数值 
  
//       String idname="201407";


      String filename="D:/AA/testAHN.ktr";//ktr路径
//       String filename="D:/AA/test10212.ktr";//ktr路径
  
      KettleEnvironment.init();//初始化kettle环境
      TransMeta transMeta = new TransMeta(filename);//new tran的源数据对象
      Trans trans = new Trans(transMeta);//创建tran对象
//       trans.setVariable("namevalue",idname);//给对象传参
      trans.prepareExecution(null);//异常处理
      trans.startThreads();//开始执行
      trans.waitUntilFinished();//等待执行完毕
      if(trans.getErrors()!=0)
      {
          System.out.println("Error encountered!"); 
      }
      
   }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月打碎记忆 2021-12-02 09:36:40

把trans.startThreads();//开始执行

改成 trans.execute(null);就可以了,另外上面那一句异常处理也可以不要,还有就是要有相应的jar包。最后这个只是调用,并不是获取数据。

回眸一笑 2021-12-01 05:18:00

您好!请问一下,您最后是怎么解决的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文