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