2014-04-07 95 views
0

我想从修改后的javascript值执行一个自定义jar文件。我的罐子名称是JsonParsing.jar,我已将它放在lib文件夹中。当我试图在罐子执行方法其给我的错误:从pentaho执行外部jar文件

ReferenceError: "JsonParsing" is not defined. 

代码段:

var package1 = JsonParsing.parseJson.ParseJSON; 
xyz=package1.processJson(data); 

回答

0

我已经解决了这个问题。我在创建实例时错过了程序包。由于我在课堂上有一个静态方法,我必须按照以下方式调用它。 (parseJson是我的包名,ParseJSON是我的类名)。这里是犀牛

var call = Packages.parseJson.ParseJSON; 
xyz=call.processJson(data); 

提供的默认类,如果它是一个非静态的方法,我在下面的方式来创建对象

var call = new Pakages.parseJson.ParseJSON(); 
xyz=call.processJson(data); 
0

JavaScript的水壶采用的是犀牛。犀牛给JavaScript访问Java类,但它不完全透明。

查看Scripting Java上的Rhino文档。

+0

感谢您的答复。我试着用“importPackage”和“importClass”方法。但没有运气访问jar文件的内容。有没有其他方法? –

+0

它应该工作,如果它是一个标准的罐子。你可以导入其他包如java.lang吗?你确定你的罐子在正确的位置吗?它必须位于Pentaho发行版的lib或libext文件夹中。你的其他选择是使用“用户定义的Java类”。这给你更多的灵活性,但它更多的工作。 –