2011-04-14 11 views
6

Estoy construyendo un rastreador web rápido y necesito tener una resolución DNS multiproceso, así que elegí un proveedor de servicios DNS multiproceso llamado dnsjava. Lamentablemente, no puedo encontrar la manera de reemplazar el proveedor de servicios DNS predeterminado.Cómo cambiar el proveedor de servicios DNS de Java

Revisé el archivo README para dnsjava, pero las instrucciones no están muy completas.

Sustitución del estándar de Java DNS funcionalidad:

A partir de Java 1.4, servicio proveedores se pueden cargar en tiempo de ejecución. para cargar el proveedor de servicios dnsjava, construirlo como se explicó anteriormente y establecer la propiedad del sistema:

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

Esto indica a la JVM de usar el servicio dnsjava proporciona DNS en la prioridad más alta .

Hay un par de cosas que estoy claro en:

  1. Dónde puedo colocar el dnsjava.jar?
  2. ¿Dónde se supone que se establece la propiedad del sistema (es programática o algún tipo de cambio de archivo)?

Me estoy ejecutando en una máquina con Windows 7 y no estoy seguro de lo que tengo que hacer para encontrar/modificar las propiedades del sistema ... ¡Ayuda !?

Actualización:
¡Gracias: System.setProperty("sun.net.spi.nameservice.provider.1","dns,dnsjava");

+0

¿Estás seguro de que 'System.setProperty ("sun.net.spi.nameservice.provider.1", "dns, dnsjava"); 'funciona para usar DNSJava primero, y solo luego volver a caer en el sistema DNS? –

Respuesta

4

una conjetura salvaje.

  1. Coloque el archivo dnsjava.jar en el classpath de su aplicación.
  2. Establezca la propiedad del sistema antes de iniciar el método principal en su aplicación.
+0

¿configuro la propiedad del sistema programáticamente? Creé una instancia de Propiedades y traté de encontrar si contiene la clave "sun.net.spi.nameservice.provider", pero no la tenía ... ¿estoy en el camino correcto? – Kiril

+0

Lo más probable es que aún no esté definido, por lo que vuelve a los valores predeterminados. Sugeriría que le preguntes a Google sobre "sun.net.spi.nameservice.provider.1" y veas qué dicen los resultados. –

+2

Lo encontré ... 'System.setProperty (" sun.net.spi.nameservice.provider.1 ")', ¡GRACIAS! – Kiril

Cuestiones relacionadas