繁体   English   中英

java.lang.VerifyError: JVMVRFY010 多个jsrs使用单返回

[英]java.lang.VerifyError: JVMVRFY010 multiple jsrs use single return

使用 IBM 时出现以下错误。 它与 Oracle 一起工作正常。 我的 class 是用 Oracle 而不是 IBM 编译的。

通过反射调用 class 时出现此错误。 通过 main 方法运行它可以正常工作。

Class aClass=ObfuscationUtility.class;
        Method[] methods = aClass.getDeclaredMethods();
        for (Method method : methods) {
            if (method.getName().equals(deobfuscated_method)) {
                method.setAccessible(true);
                try {
                    decryptedText = (String) method.invoke(aClass, encryptedText);

……

任何建议我可能会犯什么错误。

Exception in thread "main" java.lang.VerifyError: JVMVRFY010 multiple jsrs use single return; class=com/ObfuscationUtility, method=<clinit>()V, pc=65
Exception Details:
Location:
com/ObfuscationUtility.<clinit>()V @65: JBjsr
Reason:
Error exists in the bytecode.
Exception Handler Table:
bci [322, 333] => handler: 1146
bci [1147, 1157] => handler: 692
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClassInternal(ClassLoader.java:396)
at java.lang.ClassLoader.defineClass(ClassLoader.java:357)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:730)
at java.net.URLClassLoader.access$400(URLClassLoader.java:96)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1187)
at java.security.AccessController.doPrivileged(AccessController.java:774)
at java.net.URLClassLoader.findClass(URLClassLoader.java:605)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:942)
at java.lang.ClassLoader.loadClass(ClassLoader.java:887)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)

在内部,ASM 库用于执行 class 字节码操作。 Java 7 的一项要求是它包含一个 StackMap 表以协助 class 验证。 正在使用的 ASM 版本包含一个缺陷,该缺陷会导致修改后的 class 具有不正确的 StackMap 表,这会导致在加载 ZA2F2ED4F8EBC2CBB4C21A29DC40AB61D 时出现 java.lang.VerifyError 当 class 中的方法使用多维 arrays 时,可能会发生这种情况。

问题结论ASM 库已经更新了一个修复程序,该修复程序可以为使用多维 arrays 的方法正确生成 StackMap。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM