多数の異なるホスト名/IP について知る必要がある Java デスクトップ アプリケーション (Windows に展開) があります。私はソフトウェアでホスト名を使用することを好みます。これは、IP アドレスを入力するよりも説明的で脆弱性が少ないためです。ただし、これは、Windows マシンがこのマッピングの知識を必要とすることを意味します。
それらが対話しているデスクトップ アプリケーションとサーバー ソフトウェアの両方が、プライベート ネットワーク内に展開されます。私が利用できる既存の DNS サービスがネットワーク上にありません。
デスクトップが通信しているサーバー ソフトウェアには、このすべての情報で定義されたホスト ファイルが既にあります。過去に、このホスト ファイルをデスクトップ インストーラに含めて、基本的に Windows マシンのホスト ファイルを上書きしました。それはかなり醜いので、二度とやりたくありません。基本的に、デスクトップ アプリケーション内にホスト ファイルを展開し、ホスト ファイル情報が取り込まれたアプリケーション内である種のネーム サービスを実行できることを望んでいました。そうすれば、他のアプリケーションに影響を与えたり、デスクトップのホスト ファイルをいじったりすることはありません。
独自のクラスの実装について説明しているこの記事を見つけました。NameService
これは私が探していた種類のソリューションですが、内部の Sun クラスを使用しています (ここでは回避できますが、そうする必要はありません)。また、記事がかなり古い(2006年)。Java 7 APIでは、この記事で言及されているネットワーク プロパティはリストされなくなりました。これを行うためのより良い/より現代的な方法はありますか?