2013-02-04 16 views
0

嗨我想解析保存在不同機器上不同位置的主機文件。假設我可以擁有所有類型的機器(Windows,Linux,Mac等),Plz幫助我訪問主機文件。我想要一個java中完整的方法來解析與底層系統無關的hostfile。如何使用Java訪問不同機器上的主機文件(WIndows,Linux等)使用Java

到現在我被硬編碼HOSTFILE的位置,在Windows:

private final String mHostFileLocation = 
        "C:\\WINDOWS\\system32\\drivers\\etc\\hosts"; 

,但我認爲這是一個壞主意。請讓我知道我如何解析任何系統上的主機文件。

+2

*爲什麼*你想這樣做?什麼是[*實際問題*](http://mywiki.wooledge.org/XyProblem),您試圖解決? – thkala

+0

如果你正在尋找一個很好的解決方案,使用DNS並沒有在您的主機文件什麼。如果這不是一個選擇,你必須接受它不會是理想的。在Mac上的/ etc –

回答

1

恐怕沒有一個標準的平臺中立的方式來做到這一點。你要麼就必須擁有所有的有效位置的列表:

String [] hostsLocations = {"C:\\WINDOWS\\system32\\drivers\\etc\\hosts", "/etc/hosts"}; 

,並嘗試每個直到找到一個存在的文件或做位操作系統的從系統屬性嗅去尋找哪些操作系統上的並使用正確的位置,請注意,確實沒有那麼多不同的位置。

0

沒有找到hosts文件中沒有統一的方式。如果機器設置爲僅運行DNS,則甚至可能不會有一個。

這就是說,在Mac上的文件在/私營/ etc/hosts文件,在Linux上常在/ etc/hosts中。

+0

被鏈接到/私營/等,以便/ etc/hosts和/私營/ etc/hosts中基本上是相同的事情 –

相關問題