[英]Execute .jar file in Spoon (Pentaho Kettle)
我需要从Spoon执行一个Java jar文件。
该程序只有一个类,我想要的就是在有或没有参数的情况下运行它。
该类名为“ Limpieza”,位于名为:
com.overflow.csv.clean
我已将jar部署到:
C:\\ Program Files(x86)\\ Kettle \\ data-integration \\ lib
在修改的JavaScriptValue步骤中,我这样称呼它:
var jar = com.everis.csv.clean.Limpieza;
这根本不起作用,是否有办法使它起作用? 如果有一种方法可以在程序运行时查看程序打印的日志,这也很好。 运行转换时没有出现任何错误。
谢谢。
Spoon将加载其中存在的所有jar文件
数据集成\\ LIB
文件夹及其启动时的子文件夹,因此,如果要从自定义jar访问类,可以将jar放在此处。
因此,您需要创建一个自定义的jar并将其放入
数据集成\\ LIB
位置。
在“修改的Java脚本值”或“用户定义的Java类步骤”中调用自定义类时,应使用完全限定的名称进行调用。 例如
var jar = com.everis.csv.clean.Limpieza.getInstance().getMyString();
注意:放置广口瓶后,请确保重新启动Spoon。
如果仍然无法正常工作,请附加Pentaho.log(data-integration-server / logs / Pentaho.log)和catalina.out(data-integration-server / tomcat / logs)日志
答案是创建一个用户定义的Java类(遵循Rishu指出的指南),这是我的工作代码:
import java.util.*;
import com.everis.csv.Cleaner;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
Cleaner c = new Cleaner();
c.clean();
// The rest of it is for making it work
// You will also need to make a Generate Rows step that inputs a row to this step.
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
r = createOutputRow(r, data.outputRowMeta.size());
putRow(data.outputRowMeta, r);
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.