2

在不同平台上使用我的应用程序时如何获取主机文件的位置?

4

3 回答 3

3

恐怕你不得不在这里推出你自己的功能,因为这是一个相当低级的系统功能,我认为它有点超出你可以期望 java 为你做的事情。

此链接指向您可以设置以更改绑定顺序的一些特殊选项,我认为它们不会告诉您主机文件的位置,但是您可以在这些选项中和周围进行调查,看看是否可以找到任何东西其他可以帮助你

于 2010-11-23T11:14:11.243 回答
1

您可以使用“os.name”系统属性来确定操作系统。然后,根据每个操作系统的存储位置检索主机文件。例如:

String osName = System.getProperty("os.name").toLowerCase();
File hostsFile;
if (osName.startsWith("mac os x")){
  hostFile = new File("/etc/hosts");
} else if (osName.contains("windows")){
  hostFile = //...
}
于 2010-11-23T13:45:33.863 回答
1

查看Wikipedia上每个操作系统和版本的主机文件位置。不幸的是,您将不得不实现类似于迈克尔回答的自己的逻辑:

import java.awt.Desktop;
import java.io.File;

public class HostsFile
{
    public static void main(String[] args) throws Exception
    {
        String osName = System.getProperty("os.name");

        File hostsFile = null;

        if (osName.contains("Windows"))
        {
            hostsFile = new File(System.getenv("WinDir")
                    + "\\system32\\drivers\\etc\\hosts");
        }

        Desktop.getDesktop().open(hostsFile);
    }
}
于 2015-07-13T11:11:34.403 回答