2012-07-12 34 views
11

Tengo un problema al ejecutar ZeroMQ con Java usando Eclipse y Windows XP. He instalado con éxito [Creo] las librerías de 0MQ así como las vinculaciones de Java. Las instrucciones que solía hacer están ubicadas en here.¿Cómo ejecutar ZeroMQ con Java?

dos archivos se construyeron: zmq.jar y jzmq.dll. Coloqué el archivo jar en mi proyecto, lo que permitió que el código compilara OK. También configuré java.library.path en el directorio de la dll, agregué el directorio perf a mi proyecto y agregué libzmq.dll a mi PATH. (Todo según las instrucciones).

todavía tengo la siguiente excepción de que no puedo arreglar:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\jzmq\lib\jzmq.dll: Can't find dependent libraries

Qué otras bibliotecas depende de jzmq.dll? Intenté colocar libzmq.dll en todas partes, pero eso no ayudó. This es la muestra del código que estoy tratando de poner en funcionamiento.

Gracias.

Respuesta

8

Poner cualquier dll en la raíz de Windows o Windows System32 es una solución urgente, simplemente lo lleva a Dll HELL.

Lo que necesita hacer es agregar la ruta binaria ZQM en el Sistema CAMINO.

compilé una de 64 bits ZMQ & JZMQ en una hora, y aquí es mi estructura de carpetas:

 
c:\ZMQ\bin 
--- jzmq.dll, libzmq.dll 
c:\ZMQ\lib 
--- ZMQ.jar 

aquí es el paso:

  1. agregar la ruta binray en enviromennt sistema, detalle pasos es panel de control - sistema --- configuración de avance, y en la pestaña emergente, encuentre el 'avance' - 'variables de entorno' --- encuentre la 'RUTA' en 'sistema de variables' y agregue C : \ ZMQ \ bin en el valor

  2. abre un dos, y escribe 'where jzmq.dll' (no estoy seguro de si where.exe existe en XP) para confirmar si ahora está en el PATH.

  3. Inicie el Eclipse y abra su proyecto, haga clic derecho en el nombre de su proyecto y seleccione en el menú 'compilar ruta - agregar archivos externos' elija C: \ ZMQ \ lib \ zMQ.jar.

¡Todo listo!

En mi PC, el ejemplo se ejecuta correctamente.

+0

1) ¿Hay algún motivo por el que desee compilar, en lugar de utilizar el binario? – user443854

+0

Nada especial, simplemente debido a que todo mi sistema es de 64 bits, incluye JDK, por lo que me gustaría compilarlo desde el principio. –

+1

¿Qué método usaste para compilar tu 64bit ZMQ & JZMQ? –

1

Acabo de encontrar este problema también. Encontré una solución al colocar jzmq.dll y libzmq.dll en la carpeta System32. No me gusta esto como una solución permanente, pero funciona por el momento.

+0

Gracias por la respuesta. Solo necesitaba poner libzmq.dll en la carpeta System32 ya que estoy haciendo referencia a jzmq.dll en Eclipse. Funcionó, pero aún necesito una solución más permanente. – Noah

3

Debe copiar libzmq.dll en la ubicación señalada por java.library.trayectoria y con esto:

System.loadLibrary("libzmq") 

La razón es que jzmq depende de libzmq por lo libzmq tiene que ser cargado en primer lugar.

+0

Este es realmente el mejor enfoque que usar una ruta de todo el sistema. –