java里如何调用js里的方法//js代码STRING_UTIL={};STRING_UTIL.isNotEmpty=function(str){return""!=str;}//java代码ReaderscriptReaderB=newInputStreamReader(newFileInputStream(newFile("F:\\tech-study\\js-comm\\release\\bundle.js")),"utf-8");engine.eval(scriptReaderB);//engine.eval(scriptReaderA);if(engineinstanceofInvocable){//调用JS方法Invocableinvocable=(Invocable)engine;Objectresult=invocable.invokeFunction("STRING_UTIL.isNotEmpty",newObject[]{"hahaha"});System.out.println(result.toString());}//调用异常java.lang.NoSuchMethodException:nosuchmethod:STRING_UTIL.isNotEmptyatcom.sun.script.javascript.RhinoScriptEngine.invoke(RhinoScriptEngine.java:286)atcom.sun.script.javascript.RhinoScriptEngine.invokeFunction(RhinoScriptEngine.java:258)atAAAAAAA.main(AAAAAAA.java:29)//如果在添加一个全局函数functionisNotEmpty(str){returnSTRING_UTIL.isNotEmpty(str);}将调用方法变成Objectresult=invocable.invokeFunction("isNotEmpty",newObject[]{"hahaha"});这样是运行成功的
烙印99
手掌心
相关分类