2010-03-26 114 views
9

我想在Eclipse的包下創建文件夾...此文件夾的目的僅僅是爲了組織目的。意思是,我不希望它成爲另一個包。每次我嘗試在包下添加一個文件夾時,它只是創建一個包。我想要有以下結構:如何在Eclipse中創建文件夾?

project/src/package1/someClass.java 
project/src/package1/someFOLDER/anotherClass.java 
project/src/package1/package2/anotherFOLDER/oneOtherClass.java 

是否可以在不添加包的情況下執行此操作?我來自.NET/C#和C++背景......在這裏,我只是添加一個文件夾,該類的引用將在項目中更新。

如何在eclipse中添加組織文件夾?謝謝

回答

4

當你需要多個類在大型項目中封裝私有時,你應該做WTF嗎?看看你的25-30類文件都在同一個目錄中嗎?

這是Java的包系統出了問題。每個包都是一個目錄,子包只是不同的包(沒有特殊的可見性規則)。

最粗的可見性水平包私人的,所以,是的,你有你的文件25-30混爲一談到同一個軟件包,以避免普遍的公共知名度。

OSGi的解決了這個問題,通過引入包,它可以選擇不使包裝可見到外面。這爲您提供了「項目專用」軟件包。

更新:此外,您可以通過將相關類放入同一個源文件中來減少文件數量。只有公共類需要有他們自己的源文件(我更喜歡每個類有一個文件,不過公開或不公開)。

8

其實,文件夾在Java中的包,所以你的問題在Java上下文中沒有任何意義。

術語「包」可能是誤導......一個包肯定是不一樣的.NET程序集。你可以將'package'看作一個命名空間,在Java世界恰好由目錄路徑決定。

對於非源文件,您可以將源文件夾之外創建一個新的文件夾,它就會被視爲就像任何其他文件夾,而不是包裝。

+0

包是包含源代碼的文件夾。非源代碼不會放在包文件夾中,它可以轉到其他地方。 – 2010-03-26 00:33:18

+3

在Java上下文中,「包」不*表示「可部署/可分發包」 – 2010-03-26 00:33:51

1

Well packages ARE folders。

如果你想Eclipse來不建包/文件夾的內容,上項目,選擇屬性,單擊鼠標右鍵,以及Java下>構建路徑編輯包含/排除過濾器。

2

如果您正在創建的文件夾來分班授課,組織的目的,但還是希望他們能在同一個包進行訪問的目的,你可以創建多個源文件夾,並讓他們建立到同一位置。因此,文件夾層次結構看起來略有不同:

project/concern1_src/package1/someClass.java 
project/concern2_src/package1/anotherClass.java 
project/concern3_src/package1/package2/oneOtherClass.java 

正如我所說的,所有三個源文件夾可以把對同一目標目錄。或者,如果你願意的話,他們可以建立不同的目標目錄。單獨的源文件夾也將傳遞給Package Explorer。

+0

請注意,源文件夾(「包1」)內的路徑仍必須反映Java包聲明。所以我不確定從組織的角度來看,這種方法是否會工作得很好。它可以用來在「public src」和「implementation src」之間進行分割,但其他類型的分割將會很困難,特別是如果「關注」不同於一攬子包。它所做的一件事就是將父文件夾放入與子文件夾完全不同的文件系統層次結構中,實際上這似乎是倒退了一步。 – Thilo 2010-03-26 00:59:27

+0

我回答的基礎是我對組織目的的猜測。要求是一定數量的類必須具有包私有訪問權。在Java中,這意味着它們必須位於相同的目錄或鏡像目錄結構中。詢問者對另一個答案提出了另一個暗示:實質上,不得不同時查看25-30個類文件。最後,我的猜測是,更多地使用Eclipse和Java會導致關於如何瀏覽代碼的不同想法。 – 2010-03-26 01:15:28

+0

「我的猜測是,更多地使用Eclipse和Java會導致關於如何瀏覽代碼的不同想法」:這是正確的答案。 – Thilo 2010-03-26 01:28:22

-2

在eclipse中,src文件夾是主要的Source文件夾。首先,通過右鍵單擊src文件夾並選擇構建路徑 - >「從構建路徑中移除」,從構建源代碼中刪除。之後,在src下創建文件夾並右鍵單擊子文件夾(package1),然後再次選擇buildpath->用作源文件夾。現在你得到src/package1。

相關問題