回答
前四個字節0文件(編譯的Java二進制)應該是0xCAFEBABE
- 所謂魔法值。
根據你的情況,這些都是ASCII 1768713317
或0x696C6C65
或"ille"
(伊勒......加侖?)。很可能有些JVM試圖打開一個文件,認爲這是字節碼,而它實際上是一個文本文件。也許類是假設被下載,但服務器返回一些錯誤,而不是?
對不起這個問題,但是非法是什麼意思?我必須在哪裏添加魔法值? – narf
@narf:這意味着某些JVM試圖加載一個不是真正編譯Java的類,但可能是一些文本文件。如果您拍攝JPG圖片並將其擴展名更改爲.EXE,則很可能會出現某種錯誤。對不起,你的問題太模糊了,你能提供更多細節嗎? –
幻數是每個編譯的Java類的前4個字節。這是編譯的Java類的結構:
ClassFile {
u4 magic;
u2 minor_version;
u2 major_version;
u2 constant_pool_count;
cp_info constant_pool[constant_pool_count-1];
u2 access_flags;
u2 this_class;
u2 super_class;
u2 interfaces_count;
u2 interfaces[interfaces_count];
u2 fields_count;
field_info fields[fields_count];
u2 methods_count;
method_info methods[methods_count];
u2 attributes_count;
attribute_info attributes[attributes_count];
}
「魔力」應始終等於:0xCAFEBABE
。它告訴JVM:「嘿,你好!我是Java類,你可以執行我的代碼!」。當JVM讀取文件並且幻數無效時,它將不會執行它。
- 1. Safari的問題:java.lang.ClassFormatError:類文件不兼容的魔法值1013478509
- 2. 不兼容的魔法值0
- 3. 不兼容的魔法值誤差
- 4. 「ClassFormatError:不兼容的魔法值」試圖運行Java jar文件
- 5. ClassFormatError - 不兼容的魔術值
- 6. Java不兼容魔術值4022320623
- 7. 不兼容的魔法值1013084704運行Java程序
- 8. GRAILS不相容的魔法值0
- 9. JAVA不兼容類型值
- 10. 當用服務器「不兼容魔術值1013478509」
- 11. 不兼容的返回值類型
- 12. 賦值中的不兼容類型 - C
- 13. java.lang.IllegalStateException:不兼容的返回值類型
- 14. 不兼容的類型賦值爲null
- 15. 返回值時不兼容的類型
- 16. 類型不兼容的方法
- 17. iOS xib文件IBOutlet無法識別 - (不兼容鍵值編碼)
- 18. 不兼容類型
- 19. 類型不兼容
- 20. 類不是關鍵值編碼兼容
- 21. Java:不兼容類型(int /布爾值)
- 22. 該類不是鍵值編碼兼容
- 23. 我有郵件不兼容的類型
- 24. 的Java類型不兼容
- 25. 不兼容的類型? - Java
- 26. 從不兼容的類型
- 27. 不兼容的類型
- 28. C:不兼容的類型?
- 29. mimemessage的不兼容類型
- 30. 不兼容的類型
你從哪裏找到它的? –
你在哪個網站?班級文件在網站上做什麼? – gefei
該網站目前尚未公開。我可以給你發一封郵件嗎? – narf