我试图在字节码中执行此操作:
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)
有什么想法吗?
答案 0 :(得分:3)
IF_ICMPEQ是整数比较(这是ICMP的含义)您想要将引用与IF_ACMPEQ进行比较
顺便说一下,你不需要存储然后加载值,你可以只使用堆栈上的值。