我在mac osx Mavericks 10.9.2上安装zeromq时遇到问题。我已经在ubuntu,fedora和windows上成功安装了它,但我在我的mac(主开发机器)上安装它时遇到了麻烦。
首先,我认为我尝试了正常安装,但无法轻松获取所有依赖项,并且不了解如何在不使用ldconfig的情况下完成安装。
所以我选择了here所述的brew安装。
自制软件安装zeromq 4.04
然后我克隆了jzmq版本2.1.1并运行autogen.sh,configure,make和make install。
由于mac中没有ldconfig,我在尝试运行示例时将zmq.jar添加到类路径和java命令中的libs。这就是我得到的。
$ java -Djava.library.path=/usr/local/lib -cp /usr/local/share/java/zmq.jar local_lat tcp://127.0.0.1:5000 1 100
Error: Could not find or load main class local_lat
尝试排除故障我取出了类路径选项
根据官方安装指南中的建议添加了指向jar文件的$ CLASSPATH,我明白了。
$ java -Djava.library.path=/usr/local/lib local_lat tcp://127.0.0.1:5000 1 100
Exception in thread "main" java.lang.NoClassDefFoundError: org/zeromq/ZMQ
at local_lat.main(local_lat.java:36)
Caused by: java.lang.ClassNotFoundException: org.zeromq.ZMQ
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more
此安装与其他系统上的安装之间的主要区别在于我不知道如何指向和重新缓存库(ldconfig)。但是java命令的选项/参数不会处理它。这就是我用过的链接建议的内容。无论如何,为什么我会遇到这个问题?
答案 0 :(得分:0)
我遇到了同样的问题,发现这是因为jzmq无法找到zeroMQ安装。 zmq安装生成两个jar文件,其中一个由/usr/local/share/java/zmq.jar
生成,另一个由jzmq安装在perf文件夹/path/to/jzmq/src/main/perf/zmq-perf.java
生成,所以要测试安装使用此命令
$ java -Djava.library.path=/usr/local/lib -cp /usr/local/share/java/zmq.jar local_lat tcp://127.0.0.1:5000 1 100
请注意,类路径的顺序在这里非常重要,这是错误的原因。首先,引用jzmq生成的jar文件,然后引用由zmq生成的jar文件。