7

Java でパッケージ名の競合を回避する標準的な方法は、逆ドメイン規則を使用することcom.[mycompany].[rest-of-the-package-name]です。これは見事に機能します...ドメイン[mycompany].comを所有している場合。

ただし、次のような個々の開発者 (または学生) が何人かいます。

  • ドメインを所有していない (または所有する余裕がない)
  • 一意であることを期待して、いくつかのパッケージ名を思いつきます。

これだけでも、パッケージの競合が発生する可能性があります。

さらに、私が [mycompany].com を所有しているとします。開発者が私のものと同じパッケージプレフィックスを持つライブラリを作成して配布することを妨げているのは何ですか? 私の知る限り、パッケージ名に関して法的拘束力はありません(「Javaパッケージで使用したドメインを所有する必要があります」)。開発者側のこのアクションは意図的ではない可能性があることは言うまでもありません (パッケージに名前を付ける前に、存在しないドメイン名を探して Web をくまなく調べている人はどれくらいいるでしょうか?)。

さらに、ドメイン名を所有していても、パッケージ名として使用するのに適している場合とそうでない場合があります (ドメイン名にハイフンが含まれている場合や、ドメイン名が長すぎて合法的なパッケージ名であっても、非現実的にします)。

私の質問は次のとおりです。Java パッケージ名を一意にするにはどうすればよいですか?

4

2 に答える 2

15

パッケージ名がグローバルに一意であることを絶対に保証することはできません。あなたが言ったように、パッケージ名が何に基づいているかを誰が所有しているかに関係なく、他の誰かが同じパッケージ名を使用することを妨げるものは何もありません。使用中のパッケージ名の信頼できるインデックスはありません。

于 2012-05-22T13:53:56.360 に答える
7

私はあなたの問題に対する2つの答えを見ます:

  • 学生プロジェクトをSourceForgeプロジェクトにし、パッケージに名前を付けます(または、 GitHubnet.sf.myprojectなどの同様の無料ホストを使用します)。Matt Hurneが指摘しているように保証はありませんが、このようなパッケージ名は他の人には使用されない可能性があります。
  • それ以外に、ドメインを購入できない、または購入したくない場合は、プログラムが幅広い視聴者に使用される可能性は低く、パッケージに任意の名前を付けることができます。
于 2012-05-22T13:54:33.803 に答える