-
Bug
-
Resolution: Won't Fix
-
P1
-
None
-
8
Simple code:
----------------------
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class ImportTest {
public static void main(String args[]) {
try {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
if (engine == null) {
throw new Error("JavaScript egine not found");
}
engine.eval("importClass(java.lang.System);");
System.out.println("OS: " + engine.eval("System.getProperty(\"os.name\")"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
---
# java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b109)
Java HotSpot(TM) Server VM (build 25.0-b51, mixed mode
# java ImportTest
javax.script.ScriptException: ReferenceError: "importClass" is not defined in <eval> at line number 1
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:553)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:537)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:517)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:513)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:202)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) at ImportTest.main(ImportTest.java:14)
Caused by: <eval>:1 ReferenceError: "importClass" is not defined
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:56)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:318)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:290)
at jdk.nashorn.api.scripting.NashornScriptEngine.__noSuchProperty__(NashornScriptEngine.java:286)
at jdk.nashorn.internal.scripts.Script$engine._L35(nashorn:engine/resources/engine.js:37)
at jdk.nashorn.internal.scripts.Script$\^eval\_.runScript(<eval>:1)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:527)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:204)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:367)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:535)
... 5 more
----------------------
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class ImportTest {
public static void main(String args[]) {
try {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
if (engine == null) {
throw new Error("JavaScript egine not found");
}
engine.eval("importClass(java.lang.System);");
System.out.println("OS: " + engine.eval("System.getProperty(\"os.name\")"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
---
# java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b109)
Java HotSpot(TM) Server VM (build 25.0-b51, mixed mode
# java ImportTest
javax.script.ScriptException: ReferenceError: "importClass" is not defined in <eval> at line number 1
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:553)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:537)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:517)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:513)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:202)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) at ImportTest.main(ImportTest.java:14)
Caused by: <eval>:1 ReferenceError: "importClass" is not defined
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:56)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:318)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:290)
at jdk.nashorn.api.scripting.NashornScriptEngine.__noSuchProperty__(NashornScriptEngine.java:286)
at jdk.nashorn.internal.scripts.Script$engine._L35(nashorn:engine/resources/engine.js:37)
at jdk.nashorn.internal.scripts.Script$\^eval\_.runScript(<eval>:1)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:527)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:204)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:367)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:535)
... 5 more