这是否可以使用javascript来调用java方法? [英] Is this possible for use javascript to call a java method?
本文介绍了这是否可以使用javascript来调用java方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
java有一个脚本管理器,允许java调用javascript,如下所示:
The java have a script manager that allow java calling javascript, like this:
import javax.script.*;
public class ExecuteScript {
public static void main(String[] args) throws Exception {
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from String
engine.eval("print('Welocme to java world')");
}
public static void sayHi(){
System.out.println("hihi");
}
}
我的问题是,如果我有一个sayHi()函数,我可以使用javascript,通过脚本引擎来调用Java函数吗?谢谢。
My question is, if I have a sayHi() function, can I use the javascript, via the script engine to call the Java function? Thanks.
推荐答案
从JavaDocs快速入侵。
Quickly hacked together from the JavaDocs.
import javax.script.*;
public class ExecuteScript {
public static void main(String[] args) throws Exception {
// create a Java object
ExecuteScript es = new ExecuteScript();
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from String
engine.eval("println('Welcome to Java world')");
// add the Java object into the engine.
engine.put("es",es);
ScriptEngineFactory sef = engine.getFactory();
String s = sef.getMethodCallSyntax("es", "sayHi", new String[0]);
// show the correct way to call the Java method
System.out.println(s);
engine.eval(s);
}
public static void sayHi(){
System.out.println("hihi");
}
}
输出
Output
Welcome to Java world
es.sayHi()
hihi
Press any key to continue . . .
这篇关于这是否可以使用javascript来调用java方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文