Domanda

Come posso ottenere la posizione del file hosts quando si utilizza la mia applicazione su diverse piattaforme?

È stato utile?

Soluzione

pensare che si dovrà rotolare il proprio qui ho paura, in quanto si tratta di una funzione piuttosto sistema di basso livello, penso che sia un po 'al di là di quello che si potrebbe aspettare Java per fare per voi.

questo link punti ad alcune opzioni speciali che è possibile impostare per alterare nell'ordine di associazione, non credo che vi diranno dove il file hosts è, ma si potrebbe potrebbe indagare in ed intorno a queste opzioni per vedere se è possibile trovare qualsiasi altra cosa per aiutarvi a

Altri suggerimenti

È possibile utilizzare la proprietà di sistema "os.name" per determinare il sistema operativo. Poi, recuperare il file hosts a seconda di dove ogni sistema memorizza l'utilizzo. Ad esempio:

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

Date un'occhiata alle posizioni dei file host per ogni sistema operativo e la versione su Wikipedia . Purtroppo si dovrà implementare la propria logica simile alla risposta di 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);
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top