2011-09-14 166 views
21

可能重複:
Java packages com and orgJava包命名約定

我是一個Java開發人員,現在是一個天我正在學習Struts和閱讀教程好奇在我的腦海侵入時就

包com.something.something;

我知道這是一個非常簡單的包裝聲明,但是怎麼樣

COM .something.something;

此軟件包名稱片段往往有多種商業發行。現在我想知道它是什麼意思?請澄清一下。

謝謝,如果我不能澄清對不起.​​..

+0

如果你問我們把COM的包名之前,那麼答案就是約定沒有其他原因。有人說這是URL或XML命名空間的反轉,但這只是慣例而已。 – Shahzeb

+0

其實,你應該跟着別人在說什麼......下面如果 –

+0

你寫一個類你永遠都知道這不是域名在那裏,因爲它可以使可能成爲你surname.lastname。 Sun-Oracle和文檔可以說什麼他們覺得審慎,但是當我每天都花時間創建分類時,我知道他們幾乎從不是域名。嘗試使用org.apache.commons或commons.apache.org並告訴我怎麼做他們的歡迎頁面看起來像。 – Shahzeb

回答

22

發現這只是一個命名空間定義,以避免類名衝突。 com.domain.package.Class是已建立的Java約定,其中名稱空間與公司域相反。

+0

相關文檔:http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html –

+2

如果我沒有自己的域名,該怎麼辦? –

+1

@StephenHolt如果你的代碼是開源的,並且託管在一個公共倉庫中,那麼使用源碼控制倉庫本身的一個流行趨勢是。例如,許多受歡迎的項目仍然使用'net.sourceforge'或'net.sf',後跟項目名稱。現在,GiHub和GitLab都在'project.gihub.io'和'project.gitlab.io'爲您的項目提供靜態網頁託管服務,因此您可以作爲另一種選擇來探索。 – Mrinal

6

這是域名反向拼寫出來。

例如,我的一個領域是hedgee.com。所以,我使用com.hedgee作爲我所有軟件包的基本名稱。

2
  • COM =>域
  • 東西=>公司名稱
  • 東西=>主包名

例如:com.paresh.mainpackage

公司利用自己的互聯網逆轉域名來開始他們的軟件包名稱 - 例如,com.example.mypackage用於由example.com程序員創建的名爲mypackage的軟件包。 這個信息我在http://download.oracle.com/javase/tutorial/java/package/namingpkgs.html

+2

這個答案是錯過了與實際註冊域名非常重要的關係。這就是*確保你的軟件包名稱是唯一的。 –

24

維基百科,所有的地方,actually discusses this的。

這樣做是爲了確保所有的包名稱是唯一的世界性的,具有作者用他們自己來命名包DNS名稱的變體。例如,域名joda.org的業主創造了大量的工具包,其名稱以org.joda,例如:

  • org.joda.time
  • org.joda.time.base
  • org.joda.time.chrono
  • org.joda.time.convert
  • org.joda.time.field
  • org.joda.time.format
2

從上Java package naming維基百科的文章:

一般而言,包名始於組織的頂級域名,然後組織的域,然後所有子域,以相反的順序列出。然後組織可以爲其包裝選擇一個特定的名稱。軟件包名稱應儘可能全部爲小寫字符。
例如,如果在加拿大的一個組織叫做MySoft創建一個包處理的部分,命名包ca.mysoft.fractions區別於其他公司創造了另一個類似的包的分數包。如果一家名爲MySoft的美國公司也創建了一個分數包,但將其命名爲us.mysoft.fractions,那麼這兩個包中的這些類就被定義在一個獨特的獨立命名空間中。
1

這是Sun-Oracle documentation說:

包名都寫在全部小寫避免與類或接口的名稱衝突。

公司利用自身逆轉的互聯網域名,開始他們的包名,例如,com.example.mypackage通過在example.com程序員創建了一個名爲包mypackage的。