0

您好我正在尝试解析保存在不同机器上不同位置的主机文件。假设我可以拥有所有类型的机器(Windows、linux、mac 等),请帮助我访问主机文件。我想要一个完整的java方法来解析主机文件,而不考虑底层系统。

直到现在我还在 Windows 中硬编码主机文件的位置:

private final String mHostFileLocation =
                    "C:\\WINDOWS\\system32\\drivers\\etc\\hosts";

但我认为这是一个坏主意。请让我知道如何解析任何系统上的主机文件。

4

2 回答 2

1

恐怕没有标准的平台中立方式来做到这一点。您要么只需要拥有所有有效位置的列表:

String [] hostsLocations = {"C:\\WINDOWS\\system32\\drivers\\etc\\hosts", "/etc/hosts"};

并尝试每一个,直到您找到一个存在的文件或从系统属性中进行一些操作系统嗅探以找出您使用的操作系统并使用正确的位置,请注意实际上并没有那么多不同的位置。

于 2013-02-04T10:04:04.030 回答
0

没有统一的方法来定位 hosts 文件。如果机器设置为仅运行 DNS,甚至可能没有。

也就是说,在 Mac 上,该文件位于 /private/etc/hosts 中,在 Linux 上通常位于 /etc/hosts 中。

于 2013-02-04T10:04:42.690 回答