java 返回js_[Java教程]js调用java代码返回解决方案
时间: 2023-12-10 07:05:32 浏览: 186
在Java中,你可以使用Java的JavaScript引擎,如Rhino或Nashorn,来在Java中运行JavaScript代码。然后,你可以在JavaScript代码中调用Java代码并返回结果。
以下是一个简单的示例代码,展示了如何在Java中使用Rhino引擎执行JavaScript代码并从JavaScript代码中调用Java方法:
```java
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JavaJSExample {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
// 在JavaScript中定义一个函数
String jsFunction = "function add(a, b) {return Packages.com.example.JavaClass.add(a, b);}";
// 在Java中定义一个静态方法
JavaClass javaClass = new JavaClass();
engine.put("com.example.JavaClass", javaClass);
// 执行JavaScript代码
engine.eval(jsFunction);
// 从JavaScript中调用Java方法
Object result = engine.eval("add(2, 3)");
System.out.println(result); // 输出 5
}
}
class JavaClass {
public static int add(int a, int b) {
return a + b;
}
}
```
在上面的示例代码中,我们首先获取了Rhino引擎并定义了一个JavaScript函数,该函数调用JavaClass的add方法。然后,我们将JavaClass实例传递给Rhino引擎,并执行JavaScript代码。最后,我们从JavaScript中调用add函数,并输出结果。
阅读全文