是否可以從ScriptEngineManager中訪問Java方法?允許Java的ScriptEngineManager訪問某些Java方法
我發現瞭如何使用Invocable invoke函數方法,但現在我需要相反的事情發生。
public class Main {
public static void main (String[] args) throws Exception {
String source = "var results = system.foo('example'); \n" +
" \n" +
"if(results == \"hello\") { \n" +
" print(\"ding dong.\"); \n" +
"} \n";
ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
engine.eval(source);
}
}
public class System {
public static String foo (String x) throws Exception {
// do something with x
return("hello");
}
}
所以,當我運行system.foo它應該運行System.foo中的方法。
如果您正在尋找JavaScript引擎,我會使用最新版本的Rhino。與JRE一起打包的版本是舊的。 – babsher
我需要能夠指定他們可以訪問哪些類。 – Mark