Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java1.7编写Rhino代码,并使用Java1.8执行Exeception_Java_Java 8_Rhino_Retrotranslator - Fatal编程技术网

使用Java1.7编写Rhino代码,并使用Java1.8执行Exeception

使用Java1.7编写Rhino代码,并使用Java1.8执行Exeception,java,java-8,rhino,retrotranslator,Java,Java 8,Rhino,Retrotranslator,我的应用程序使用Rhino混合javascript代码和Java对象 JVM 1.5、1.6和1.7的每一项功能都非常好,但在运行时使用JVM 1.8.0时会产生一个错误的ArrayIndexOutOfBoundsException: import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; public class RhinoOn8 { static public void ma

我的应用程序使用Rhino混合javascript代码和Java对象

JVM 1.5、1.6和1.7的每一项功能都非常好,但在运行时使用JVM 1.8.0时会产生一个错误的ArrayIndexOutOfBoundsException:

import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;

public class RhinoOn8 {

    static public void main(String[] args) throws SecurityException, NoSuchMethodException {        
        Context ctx = Context.enter();
        Scriptable scope = ctx.initStandardObjects();
        Object ev = ctx.evaluateString(scope, "'' + java.lang.System.getProperty(\"user.name\")", "exec", 0, null);
        System.out.println(ev);
        Context.exit();
    }
}
在JVM Oracle 1.7.0_55上运行良好,并在JVM Oracle 1.8.0_31上执行此操作:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5747
    at org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.readClass(ClassReader.java:1572)
    at org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:341)
    at org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:300)
    at org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.<init>(ClassDescriptor.java:67)
    at org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.getInstance(ClassDescriptor.java:82)
    at org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.MethodDescriptor.getInstance(MethodDescriptor.java:120)
    at org.mozilla.javascript.net.sf.retrotranslator.runtime.java.lang.reflect._Method.isVarArgs(_Method.java:96)
    at org.mozilla.javascript.jdk15.VMBridge_jdk15.isVarArgs(VMBridge_jdk15.java:33)
    at org.mozilla.javascript.MemberBox.init(MemberBox.java:44)
    at org.mozilla.javascript.MemberBox.<init>(MemberBox.java:32)
    at org.mozilla.javascript.JavaMembers.reflect(JavaMembers.java:455)
    at org.mozilla.javascript.JavaMembers.<init>(JavaMembers.java:43)
    at org.mozilla.javascript.JavaMembers.lookupClass(JavaMembers.java:807)
    at org.mozilla.javascript.NativeJavaObject.initMembers(NativeJavaObject.java:54)
    at org.mozilla.javascript.NativeJavaObject.<init>(NativeJavaObject.java:44)
    at org.mozilla.javascript.NativeJavaObject.<init>(NativeJavaObject.java:34)
    at org.mozilla.javascript.WrapFactory.wrapAsJavaObject(WrapFactory.java:115)
    at org.mozilla.javascript.WrapFactory.wrap(WrapFactory.java:72)
    at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:236)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
    at org.mozilla.javascript.gen.exec_1._c_script_0(exec:0)
    at org.mozilla.javascript.gen.exec_1.call(exec)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
    at org.mozilla.javascript.gen.exec_1.call(exec)
    at org.mozilla.javascript.gen.exec_1.exec(exec)
    at org.mozilla.javascript.Context.evaluateString(Context.java:1079)
    at RhinoOn8.main(RhinoOn8.java:12)
线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:5747 位于org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.readClass(ClassReader.java:1572) 位于org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:341) 位于org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:300) 位于org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.(ClassDescriptor.java:67) 位于org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.getInstance(ClassDescriptor.java:82) 位于org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.MethodDescriptor.getInstance(MethodDescriptor.java:120) 位于org.mozilla.javascript.net.sf.retrotranslator.runtime.java.lang.reflect._Method.isVarArgs(_Method.java:96) 位于org.mozilla.javascript.jdk15.VMBridge_jdk15.isVarArgs(VMBridge_jdk15.java:33) 位于org.mozilla.javascript.MemberBox.init(MemberBox.java:44) 位于org.mozilla.javascript.MemberBox(MemberBox.java:32) 位于org.mozilla.javascript.JavaMembers.reflect(JavaMembers.java:455) 位于org.mozilla.javascript.JavaMembers。(JavaMembers.java:43) 位于org.mozilla.javascript.JavaMembers.lookupClass(JavaMembers.java:807) 位于org.mozilla.javascript.NativeJavaObject.initMembers(NativeJavaObject.java:54) 位于org.mozilla.javascript.NativeJavaObject.(NativeJavaObject.java:44) 位于org.mozilla.javascript.NativeJavaObject.(NativeJavaObject.java:34) 位于org.mozilla.javascript.WrapFactory.wrapAsJavaObject(WrapFactory.java:115) 位于org.mozilla.javascript.WrapFactory.wrap(WrapFactory.java:72) 位于org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:236) 位于org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) 在org.mozilla.javascript.gen.exec_1._c_script_0(exec:0) 访问org.mozilla.javascript.gen.exec_1.call(exec) 位于org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394) 位于org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) 访问org.mozilla.javascript.gen.exec_1.call(exec) 位于org.mozilla.javascript.gen.exec_1.exec(exec) 位于org.mozilla.javascript.Context.evaluateString(Context.java:1079) 位于rhinon8.main(rhinon8.java:12) 我尝试使用Rhino1.7R4和Rhino1.7R5pre,结果相同


有人知道一种解决方法(不改变JS源)

使用JS.jar而不是JVM1.4所需的JS-14.jar

它不应该在JDK8中使用Nashorn吗?使用Rhino有什么理由吗?这是针对一个应该在多个java版本上运行的Web应用程序的。我刚刚在Windows 7上使用64位JDK 1.8.031进行了尝试,结果成功了。我在一个使用32位JVM的Linux 64位应用程序上。我将在其他操作系统上试用,看看Windows 8.1 64和1.8.0_31 32位JVM上的相同错误。