2
我是相當新的Java字節碼。我使用BCEL來生成字節碼,但是當我嘗試使用生成的代碼時,我收到一條錯誤消息。 (回想起來,這看起來像ObjectWeb的ASM更先進,更通常大於BCEL使用。)的VerifyError:堆棧尺寸過大(?這是什麼意思)
以下是錯誤消息:
Exception in thread "main" java.lang.VerifyError:
(class: cb/io/FileDescriptor, method: set
signature: (I)J)
Stack size too large
這裏是方法:
// Method descriptor #4 (I)J
// Stack: 0, Locals: 1
private static long set(int arg1);
0 lconst_0
1 lreturn
Local variable table:
[pc: 0, pc: 2] local: arg1 index: 0 type: int
從據我所知,局部變量表是正確的,因爲它匹配輸入參數。我沒有添加「this」變量,因爲該方法是靜態的。
如果我沒有記錯,lconst_0加載的0長值壓入堆棧,並lreturn消耗該值並將其返回。
我在做什麼錯?這裏有足夠的信息來說明嗎?
謝謝!
謝謝。有效! //堆棧:2,當地人:1 – user1324109 2013-03-07 15:55:32
不客氣。 – Neet 2013-03-07 16:36:02