2014-01-27 31 views
0

如果我有一個Java類: - 我編譯類,並將其包含在一個罐子裏,A - 分別編譯相同的類,包括它在不同的罐子,B (我知道這是不是做政治上的權利這...等) (編譯是在同一臺機器上針對相同的jdk完成的)類加載相同的java代碼,兩個.class文件的問題?

如果我將這兩個罐放在同一個戰爭中 - 我可以得到類加載問題嗎?

回答

1

兩種方式惹麻煩:

  1. 有兩臺外部不同班由同一個名字,使得和對一個編譯的其他類將不再有效參考第二。
  2. 有兩個相同的類副本(或甚至相同的副本)和管理(通過幾種方法之一)使用兩個不同的類加載器加載它兩次。

但是,在類路徑中兩次具有相同的(從外部屬性角度來看)並不是一個問題 - JAR搜索順序中的第一個將始終加載。

1

不,您只需獲取它找到的第一個副本即可。如果他們在同一個包裹裏,你將永遠看不到其他班級。

這樣做並不是「政治上」錯誤。這基本上是一個錯誤。

+0

我明顯不會故意這樣做.... – Roxana

相關問題