2010-09-10 52 views
4

我有一個Java應用程序,Java文件位於名爲app的包中。我已經將JAR文件添加到類路徑中。 JAR文件中的所有類都在默認包中。在JAR文件中訪問默認包中的類

從我的Java應用程序中,我無法訪問此JAR文件的類。只有當我將我的應用程序文件放在默認包中時,才能看到JAR文件中的類。這是爲什麼?

+0

Giovanni可能已經移動,但我有同樣的問題。我使用eclipse並將jar文件添加到java構建路徑。我想他們在默認包下,因爲只有默認包中的文件才能訪問jar文件中的方法。有沒有辦法添加jar文件,以便所有包可以通過Project> Properties> JavaBuildPath或通過更改.classpath文件訪問jar文件? – flobacca 2012-08-22 22:54:05

回答

1

默認包中的類對包內的類不可見。

當類在不同的包中時,則基本上需要import類。但是由於在默認包中不可能存在import類,所以唯一的解決方案是將這些類放在一個包中。

無論何時想要重用類,都要將類放入包中。

3

從默認包中不能再使用import。 (你曾經是能夠在Sun的早期javac的實現,但這是不允許的語言規範。)顯然的解決辦法:

  • 儘量不要使用默認的包。將所有類,接口和枚舉移動到命名包中。 [good]
  • 將您的打包類移入默認包。 [bad]
  • 通過反射訪問類。 [可怕]
+0

我已經試過用我需要的類來製作一個jar包,但是我看不到我的應用程序中的類 – Giovanni 2010-09-10 14:50:18

+0

@Giovanni我認爲你將需要一個簡單但完整的例子來說明你正在嘗試做什麼。 – 2010-09-10 14:52:10

相關問題