2011-04-14 43 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