我有一个 Java 桌面应用程序(部署在 Windows 上),它需要了解一堆不同的主机名/IP。我更喜欢在软件中使用主机名,因为它比输入 IP 地址更具描述性/不那么脆弱。但是,这意味着 Windows 机器需要了解此映射。
他们正在与之交谈的桌面应用程序和服务器软件都部署在专用网络中。网络上没有我可以利用的现有 DNS 服务。
桌面正在与之通信的服务器软件已经有一个包含所有这些信息的主机文件。过去,我在桌面安装程序中包含了这个主机文件,基本上破坏了 Windows 机器的主机文件。这很丑陋,我不想再这样做了。我希望我基本上可以在我的桌面应用程序中部署我的主机文件,并在使用主机文件信息填充的应用程序内运行某种名称服务。这样我就不会影响其他应用程序,也不会弄乱桌面的主机文件。
我发现这篇文章描述了实现你自己的NameService
类。这是我一直在寻找的解决方案,但是,它使用内部 Sun 类(我可以在这里逃脱,但我宁愿不必这样做)。此外,这篇文章很旧(2006 年)。在Java 7 API中,不再列出文章提到的网络属性。有没有更好/更现代的方法来做到这一点?