有誰知道如何複製java.lang.ClassCircularityError
以外的throw new ClassCircularityError(...)
?如果可能,你能告訴我一個例子main()
程序總是出現錯誤嗎?如何複製ClassCircularityError
根據Javadoc:
當Java虛擬機檢測類的超類層次的圓形加載時拋出。
有誰知道如何複製java.lang.ClassCircularityError
以外的throw new ClassCircularityError(...)
?如果可能,你能告訴我一個例子main()
程序總是出現錯誤嗎?如何複製ClassCircularityError
根據Javadoc:
當Java虛擬機檢測類的超類層次的圓形加載時拋出。
這個錯誤通常不會發生,除非運行時使用的某些庫的版本與用於編譯的庫的版本不匹配。
您可以使用單獨的編譯輕鬆地重現錯誤。
首先,編譯A.java
具有以下定義:
class B {}
class A extends B {}
然後編譯B.java
與反向類層次結構:
class A {}
class B extends A {}
最後,從第一次編譯與B.class
從第二彙編結合A.class
。在那之後,選擇運行類的嘗試都將導致
Exception in thread "main" java.lang.ClassCircularityError: A
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
謝謝。我會嘗試。 –
可能的複製[ClassCircularityError通過ClassLoader.defineClass拋出(https://stackoverflow.com/questions/6179533/classcircularityerror-thrown-by-classloader- defineclass)(也許) – Carcigenicate
如果可能,我想知道總是發生錯誤的情況。 –
鏈接問題的答案提到導致錯誤的原因。這不足以重現它嗎? – Carcigenicate