我是 nashorn 引擎的新手。在我的 java 代码中,我在 filereader 中指定了 javascript 路径,但它在运行时抛出了 filenotfoundexception。如果我将我的 javascript 放在桌面并给出该位置,我的代码是有效的。但是如果我把我的 javascript 函数放在一个项目中的文件夹不起作用会引发文件未找到异常。这是我的错误代码
engine.eval(new FileReader("res/nashorn1.js"));
这是我的工作代码
engine.eval(new FileReader("C:/Users/selva/Desktop/res/nashorn1.js"));
我正在使用 java 独立应用程序。我的代码
public class Nashorn1 {
public static void main(String[] args) throws Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("C:/Users/selva/Desktop/res/nashorn1.js"));
Invocable invocable = (Invocable) engine;
Object result = invocable.invokeFunction("fun1", "Peter Parker");
System.out.println(result);
System.out.println(result.getClass());
invocable.invokeFunction("fun2", new Date());
invocable.invokeFunction("fun2", LocalDateTime.now());
invocable.invokeFunction("fun2", new Person());
}
}
nashorn1.js
var fun1 = function(name) {
print('Hi there from Javascript, ' + name);
return "greetings from javascript";
};
var fun2 = function (object) {
print("JS Class Definition: " + Object.prototype.toString.call(object));
};
任何帮助将不胜感激!!