Получение местоположения файла hosts в Java - PullRequest
2 голосов
/ 23 ноября 2010

Как узнать местоположение файла hosts при использовании моего приложения на разных платформах?

Ответы [ 3 ]

3 голосов
/ 23 ноября 2010

я думаю, что вам придется кататься здесь самостоятельно, я боюсь, так как это довольно низкоуровневая системная функция, я думаю, что она немного выше того, что вы можете ожидать от java для вас.

Эта ссылка указывает на некоторые специальные параметры, которые вы можете установить, чтобы изменить порядок привязки, я не думаю, что они скажут вам, где находится файл hosts, но вы могли бы исследовать в и вокруг эти варианты, чтобы увидеть, если вы можете найти что-нибудь еще, чтобы помочь вам

1 голос
/ 13 июля 2015

Посмотрите расположение файлов хостов для каждой операционной системы и версии в 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);
    }
}
1 голос
/ 23 ноября 2010

Вы можете использовать системное свойство "os.name" для определения операционной системы.Затем получите файл hosts в зависимости от того, где его хранит каждая операционная система.Например:

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 = //...
}
...