2011-05-28 77 views
35

也許一個愚蠢的問題,但我在eclipse中有兩個軟件包,現在我想將一個軟件包移到另一個軟件包中以獲得更好的結構。移動軟件包eclipse

現在我試着移動,但生成一個副本到相同的包。

並與重構 - >動我甚至不能選擇套餐

誰能幫我....

THX所有

+0

我認爲這是一個錯誤。當您將節點從一個位置拖放到另一個位置時,在同一棵樹中,接受的預期行爲是移動重命名。 eclipse package explorer中的行爲非常不尋常且令人困惑。要麼就是日食隊已經無法達到的技能來實現拖放移動,重命名,或已執行硬是不尋常的行爲,建立「常態」,即明顯蝕。 – 2016-09-12 16:42:41

回答

42

如果你有com.company.foocom.company.bar,並希望移動foobar,那麼就重命名com.company.foocom.company.bar.foo

+5

不幸的是,這不會在foo中移動子包。所以如果你有foo.a並將foo移動到bar,foo.a仍然保持原來的位置。 – Wolfgang 2011-05-28 18:54:53

+0

工作了一點吧,我得到的東西我可以住在一起......做了一些重構和它仍然是工作,所以我與它的罰款。 – 2011-05-28 19:08:52

+0

我沒有任何子包,所以我可以將其作爲解決方案。但是,如果有完整的答案,我仍然會有所收穫。 – 2011-05-28 19:10:22

22

使用Package Explorer視圖,並重新命名包。它要求重命名更新引用,重命名子包,更新註釋中的文本引用以及非Java文本文件。點擊預覽,然後確定。

+1

我想補充一點,最好是使用'CTRL + SHIFT + r'重構的pacakage,而不是隻按'F2'重命名爲一些可能會收集來自你的答案 – avalancha 2014-11-05 15:35:10

13

我已經找到了解決方案,當您將包重命名爲所需的目的地時,請勾選「重命名子包」框,然後就可以開始了! :) - user1525788七月10在9:14

+0

你要記住 - #1)重命名而不是移動和#2)重命名子包#3)沒有將n個墨滴:d – rjha94 2013-07-26 16:12:23

+1

作品。這應該是現在的答案。 – Zitrax 2014-01-14 18:02:25

-1

這是舊的,但嘗試打開層次模式。 in project explorer click the small arrow (pointing down) > package presentation > hierarchical.

+1

這不回答這個問題,並且不改變由OP描述的包複製行爲。 – 2015-09-14 13:18:15

+0

答案與問題無關。 – Robocide 2016-02-07 16:39:29

0

這是稍有非直觀的,但要做到這一點的最好辦法是通過你要移動的包右鍵點擊,點擊refactor,然後在rename

然後繼續輸入你的願望完全合格的路徑。

例如,如果你希望一個包叫做dog被移動到一個名爲mammals這本身就是在一個名爲包包animals你會基本上是你的dog包重命名爲animals.mammals.dog

換句話說,封裝結構

enter image description here

被表示爲Java包的世界animals.mammals.dog,並且重命名實現所需效果。

請注意,您必須必須不要試圖通過在Windows資源管理器中手動移動文件夾來實現此目的。這些操作最好使用IDE完成。