java - 使用自定义加载程序出现错误 "Register pair 1/2 contains wrong type"

标签 java awt

我正在尝试使用我自己的自定义加载器并在反射的帮助下执行程序。很少有程序可以正常工作,但是很少有程序会出现此错误..

Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class:
  employeeTestTemp/CommissionedEmployee, method: setCommissionRate
  signature: (D)V) Register pair 1/2 contains wrong type at
  java.lang.Class.getDeclaredMethods0(Native Method) at
  java.lang.Class.privateGetDeclaredMethods(Unknown Source) at
  java.lang.Class.getMethod0(Unknown Source) at
  java.lang.Class.getMethod(Unknown Source)...

虽然同一个程序在使用默认的 java 加载器执行时工作得非常好。 请帮忙... 提前致谢..

最佳答案

我在字节码程序上遇到了此错误消息,根本原因是当我的代码访问它的后半部分时,双倍占用了两个插槽。 我的乌龙错误代码是:

.class Test
.method static run(DDDD) D
.limit locals 8
dload_0
dload_1
dmul
dload_2
dadd
dload_0
dmul
dload_3
dadd
dreturn
.end method

我猜测是优化器导致的,建议你用不同配置的jdk重新编译或者使用不同的jdk。

关于java - 使用自定义加载程序出现错误 "Register pair 1/2 contains wrong type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9945176/

相关文章:

java - 如何检测用户是否输入了不符合我的ANTLR语法规则的字符串?

java - 超线程 CPU 中的 Thread.yield()

java - SwingUtilities 线程和 AWT.EventQueue 线程之间的区别

java - 制作 JFrame 时抛出 LWJGL java.awt.HeadlessException

java - Java 最终类中 protected 方法的用例是什么?

java - AlarmManager 在应用程序关闭时不起作用

java - 当我使用这个线程代码时,我的应用程序崩溃了

Java Can't connect to X11 window server using 'localhost:10.0' as the value of DISPLAY variable

java - 动态创建 FormLayout 行和列(在运行时)

Java:使用 Desktop.print 打印 MS Access 数据库