2011-04-14 40 views
6

我正在構建一個快速的網絡爬蟲,我需要擁有多線程DNS解析,因此我選擇了一個名爲dnsjava的多線程DNS服務提供商。不幸的是,我無法弄清楚如何替換默認的DNS服務提供者。如何更改java DNS服務提供商

我對dnsjava的README文件進行了檢查,但是指令並不是很完整。

更換標準的Java DNS 功能:

與Java 1.4開始,服務 提供商可以在運行時加載。 要加載dnsjava服務提供商, 構建它上面所解釋的,並設置 系統屬性:

sun.net.spi.nameservice.provider.1 = DNS,dnsjava

這指示使用JVM dnsjava服務提供 最高優先級的DNS。

有一對夫婦的事情,我在不清楚:

  1. 我在哪裏放置dnsjava.jar?
  2. 系統屬性應該在哪裏設置(程序化還是某種類型的文件更改)?

我在Windows 7機器上運行,我不知道我需要做什麼來查找/修改系統屬性... help!?

更新:
明白了:System.setProperty("sun.net.spi.nameservice.provider.1","dns,dnsjava");

+0

你確定'System.setProperty(「sun.net.spi.nameservice.provider.1」,「dns,dnsjava」);'工作是先使用DNSJava,然後纔回落到系統DNS? – 2014-01-09 13:59:18

回答

4

胡亂猜測。

  1. 將dnsjava.jar文件放入應用程序的類路徑中。
  2. 在啓動應用程序中的main方法之前設置系統屬性。
+0

是否以編程方式設置系統屬性?我創建了一個Properties實例,並試圖找到它是否包含密鑰「sun.net.spi.nameservice.provider」,但它沒有它......我在正確的軌道上? – Kiril 2011-04-14 19:03:46

+0

它很可能尚未定義,因此它回落到默認值。我建議你向Google詢問「sun.net.spi.nameservice.provider.1」,看看結果如何。 – 2011-04-14 19:09:47

+2

找到它......'System.setProperty(「sun.net.spi.nameservice.provider.1」),謝謝! – Kiril 2011-04-14 19:14:44