Pregunta

¿Cómo puedo obtener la ubicación de la archivo hosts al usar mi solicitud en diferentes plataformas?

¿Fue útil?

Solución

pensar que tendría que rodar su propia aquí me temo, ya que esta es una función bastante sistema de bajo nivel, creo que es un poco más allá de lo que se podía esperar de Java que haga por ti.

puntos este enlace a algunas opciones especiales que se pueden establecer para alterar el orden de vinculación, no creo que le dirá donde está el archivo hosts es, pero se podía podía investigar en y alrededor de estas opciones para ver si puede encontrar cualquier otra cosa que le ayudarán a

Otros consejos

Se puede usar la propiedad del sistema "os.name" para determinar el sistema operativo. A continuación, recuperar el archivo hosts en función de que cada sistema operativo almacena. Por ejemplo:

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

Tome un vistazo a las ubicaciones de los archivos hosts para cada sistema operativo y la versión de Wikipedia . Por desgracia, tendrá que poner en práctica su propia lógica similar a la respuesta de Michael:

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);
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top