1

我正在尝试在字节码中执行此操作:

if("asd"=="asd"){}

但我收到以下错误:

Exception in thread "main" java.lang.VerifyError: (class: Main, method: main signature: ([LJava/lang/String:)V) Expecting to find integer on stack
    at java.lang.Class.getDeclareMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.class.getMethod0(Unknown Source)
    at java.lang.class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

有任何想法吗?

4

1 回答 1

3

IF_ICMPEQ 是整数比较(这就是 ICMP 的意思)你想用 IF_ACMPEQ 比较引用

顺便说一句,您不需要存储然后加载值,您可以只使用堆栈上的值。

于 2013-06-12T15:00:56.630 回答