代码之家  ›  专栏  ›  技术社区  ›  Arjan

在Java中获取主机文件位置

  •  2
  • Arjan  · 技术社区  · 15 年前

    我怎样才能知道 hosts file 在不同平台上使用我的应用程序时?

    3 回复  |  直到 15 年前
        1
  •  3
  •   phatmanace    15 年前

    我担心您必须在这里自己运行,因为这是一个非常低级的系统功能,我认为这有点超出了您对java的期望。

    This link 指向一些可以设置以更改绑定顺序的特殊选项,我不认为它们会告诉您hosts文件在哪里,但是您可以在这些选项内和周围进行调查,看看是否可以找到其他帮助您的选项

        2
  •  1
  •   Michael    15 年前

    您可以使用“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 = //...
    }
    
        3
  •  1
  •   BullyWiiPlaza    11 年前

    查看上每个操作系统和版本的主机文件位置 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);
        }
    }