I have tried to call javascript function from java code, but I am getting the following error while using javascript API:
Caused by: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "File" is not defined. (#8) at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3770) at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3748) at sun.org.mozilla.javascript.internal.ScriptRuntime.notFoundError(ScriptRuntime.java:3833) at sun.org.mozilla.javascript.internal.ScriptRuntime.name(ScriptRuntime.java:1760) at sun.org.mozilla.javascript.internal.Interpreter.interpretLoop(Interpreter.java:1785) at sun.org.mozilla.javascript.internal.Interpreter.interpret(Interpreter.java:849)
java code:
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");
    engine.eval(Files.newBufferedReader(Paths.get("D:/test/test.js"), StandardCharsets.UTF_8));
    Invocable inv = (Invocable) engine;
    inv.invokeFunction("display", "test");
    inv.invokeFunction("writeTextFile", "D:\\test\\file.txt", "test");
test.js:
var display = function(name) {
    print("Hello, I am a Javascript display function "+name);
    return "display function return"
}
function writeTextFile(afilename, output) {
    var txtFile = new File(afilename);
    txtFile.writeln(output);
    txtFile.close();
}
display function working fine, the error appear while executing writeTextFile function.
 
     
    