在 Spoon (Pentaho Kettle) 中执行 .jar 文件
Execute .jar file in Spoon (Pentaho Kettle)
我需要从 Spoon 执行一个 java jar 文件。
程序只有一个class,我只想运行带参数或不带参数。
class 名为 "Limpieza",位于名为
的包内
com.overflow.csv.clean
我已将 jar 部署到:
C:\Program Files (x86)\Kettle\data-integration\lib
从 Modified JavaScriptValue 步骤开始,我这样称呼它:
var jar = com.everis.csv.clean.Limpieza;
这根本不起作用,有没有办法让它起作用?
如果有一种方法可以在程序 运行 时查看程序打印的日志,那就太好了。
运行 转换时我没有收到任何错误。
谢谢。
Spoon 将加载其
中存在的所有 jar 文件
data-integration\lib
启动期间的文件夹及其子文件夹,因此如果您想从自定义 jar 访问 classes,您可以将 jar 放在这里。
因此您需要创建一个自定义 jar 并将该 jar 放入
data-integration\lib
位置。
在 "Modified Java Script Value" 或 "User Defined Java Class step" 中调用自定义 class 时,您应该使用完全限定名称进行调用。例如
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) logs
查看下面的博客:
希望这可能有所帮助:)
答案是创建一个用户定义的 Java Class(按照 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;
}
我需要从 Spoon 执行一个 java jar 文件。
程序只有一个class,我只想运行带参数或不带参数。
class 名为 "Limpieza",位于名为
的包内com.overflow.csv.clean
我已将 jar 部署到:
C:\Program Files (x86)\Kettle\data-integration\lib
从 Modified JavaScriptValue 步骤开始,我这样称呼它:
var jar = com.everis.csv.clean.Limpieza;
这根本不起作用,有没有办法让它起作用? 如果有一种方法可以在程序 运行 时查看程序打印的日志,那就太好了。 运行 转换时我没有收到任何错误。
谢谢。
Spoon 将加载其
中存在的所有 jar 文件data-integration\lib
启动期间的文件夹及其子文件夹,因此如果您想从自定义 jar 访问 classes,您可以将 jar 放在这里。
因此您需要创建一个自定义 jar 并将该 jar 放入
data-integration\lib
位置。
在 "Modified Java Script Value" 或 "User Defined Java Class step" 中调用自定义 class 时,您应该使用完全限定名称进行调用。例如
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) logs
查看下面的博客:
希望这可能有所帮助:)
答案是创建一个用户定义的 Java Class(按照 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;
}