10
我正在使用自定義類加載器加載類。在大多數情況下,一切正常,但有時當我加載特別複雜的項目/庫,我得到一個奇怪的錯誤:ClassLoader.defineClass引發的ClassCircularityError
Exception in thread "main" java.lang.ClassCircularityError:
org/apache/commons/codec/binary/Hex
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
at my.custom.class.Loader.loadClass(...)
望着的Javadoc,我不希望defineClass
拋出此特定錯誤。 org/apache/commons/codec/binary/Hex
是我正在嘗試加載的課程。這幾乎就好像defineClass
在定義類之前需要一個類的副本 - 這對我來說沒有意義。
想法?
你能展示你的代碼嗎?您是否按照建議覆蓋了findClass()?否則,你必須非常小心才能把事情做好。 – Voo 2011-05-30 18:41:33
*這幾乎就像define class在類定義class之前需要一個類的副本,不是它不需要該類的副本。你是如何設法定義一個包名'class'的? – bestsss 2011-05-30 19:12:19
@bestsss大概是堆棧跟蹤只是模糊的包名稱選擇 – 2011-05-31 06:03:28