0
我需要使用Spatial illusions javascript库生成符号(以canvas或SVG格式),并在我的java(专有框架)项目中使用该符号。 java脚本代码可用here。我正在使用下面的代码。<eval>:32 ReferenceError:“document”未定义javax.script.ScriptException
public class TestSymbolCreation {
public static void main(String args[]) {
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getEngineByExtension("js");
System.out.println(new File(".").getAbsoluteFile());
File file = new File("./src/resources/milsymbol.js");
try {
Reader reader = new FileReader(file);
scriptEngine.eval(reader);
Bindings obj = (Bindings) scriptEngine.eval("var canvasElement = {value : new ms.Symbol('SFG-UCI----D',{size:35}).asCanvas() }; canvasElement;");
Object canvas = obj.get("value");
System.out.println("Canvas =>"+canvas);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但我一直在获取以下例外。如何得到这个工作?有人能帮助我吗?
javax.script.ScriptException: ReferenceError: "document" is not defined in <eval> at line number 32
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:467)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:451)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:403)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:399)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
at TestSymbolCreation.main(TestSymbolCreation.java:30)
Caused by: <eval>:32 ReferenceError: "document" is not defined
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291)
at jdk.nashorn.internal.objects.Global.__noSuchProperty__(Global.java:1432)
at jdk.nashorn.internal.scripts.Script$Recompilation$149$403515A$\^eval\_.L:1-1$L:32-8$exports(<eval>:32)
at jdk.nashorn.internal.scripts.Script$87$\^eval\_.:program(<eval>:1)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:640)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:228)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:446)
... 5 more
'./src/resources/milsymbol.js'里面是什么? –
@NathanP。它是一个来自https://spatialillusions.com/ – User
的javascript库文件。但是,您必须提供相关代码,以便我们可以为您提供帮助。该文件可能引发异常。 –