导入org.zeromq.ZMQ;
- 对于上面的import语句,我在jzmq主文件夹中使用“org文件夹”,该文件夹由ZMQ.java文件组成。
- 所以,编译没有问题。当我开始运行程序时,它显示在下面的异常
线程“main”中的异常java.lang.UnsatisfiedLinkError:java.library.path中没有jzmq at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) 在java.lang.System.loadLibrary(未知来源) 在org.zeromq.ZMQ。(ZMQ.java:41) 在server.main(Server.java:13)
我该怎么办? 我必须下载哪些软件包以及我必须使用哪些导入语句用于java中的ZeroMQ helloworld示例?
我看到很多人在某处使用libzmq.dll,jzmq.dll和一些jar文件来避免这种异常。但我想要一个明确的答案。
答案 0 :(得分:3)
此lib(jzmq)绑定到本机库libzmq。 如果你不使用libzmq(例如ipc)的功能,你最好使用完整的java实现 - jeromq (mvnrepo,jeromq git)。它具有几乎相同的功能。
否则,如果你需要jzmq,你必须正确编译它。 这是我在windows x64上编译它的方式:
要构建库,您需要IDE Visual Studio 2010或更高版本。在这个例子中,我使用了2013版本。所有工作都在目录C:\zmq
(例如)中执行。
C:\zmq
。C:\zmq\java
。C:\zmq\java
。C:\zmq\libsodium
和C:\zmq\libsodium
C:\zmq\libsodium\bi
n libsodium-1.0.10-msvc\Win32
和
libsodium-1.0.10-msvc\x64
个目录。C:\zmq\libsodium\src
。C:\zmq\libsodium\src directory
libsodium-1.0.10-MSVC \包括。<强> Zeromq。强>
在Visual Studio中打开目录C:\zmq\builds\msvc
中的相应zeromq解决方案文件。
打开配置管理器。活动配置解决方案 - 选择DynRelease。主动解决方案平台 - 选择x64。
打开项目属性页面,转到配置属性 - C / C ++ - 常规,检查包含文件目录的路径。
然后选择linker - General,并检查库目录的路径。
在配置文件C:\zmq\builds\msvc\vs2013\libsodium.import.props
中的正确路径中。
然后补充它,如果一切正确,你将获得C:\zmq\bin\x64\Release\v120\dynamic
目录中的dll。如果它不是 - 检查日志,进行更改并重建它。
<强> Jzmq。强>
现在从目录C:\zmq\java\builds\msvc\
与zeromq项目一样,打开配置管理器并选择Release和x64平台。
打开项目属性页面,转到配置属性 - VC ++目录,并检查安装JDK的路径是否正确。 你会遇到这样的事情:
..\..\..\..\include;C:\Program Files\Java\jdk1.7.0_71\include;C:\Program
Files\Java\jdk1.7.0_71\include\win32;$(IncludePath)
还要检查Library Catalogs(忘记其名称)路径是否包含具有内置zeromq libs的目录的路径。 它看起来像这样:
..\..\..\..\bin\x64\Release\v120\dynamic;$(LibraryPath)
在属性页面上,转到配置属性 - 装配事件 - 装配前的事件并检查属性&#34;命令提示符&#34; (首先检查复制命令中文件的路径)。 它看起来像这样:
copy ..\config.hpp "..\..\..\src\main\c++\"
然后buid jzmq,如果一切正确,你将获得C:\zmq\java\lib
中的文件。
如果不是 - 请查看日志,进行更改并重建。
在C:\zmq
中,您只需要bin java\lib
目录,其余的可以删除。
将路径添加到PATH bin\x64\Release\v120\dynamic
并使用-Djava.library.path="path_to_java\lib"
运行java app
答案 1 :(得分:1)
我在Linux(日食)上遇到了同样的问题,我通过为zmq.jar设置本机库jzmq的路径解决了该问题。通过进入项目属性(右键单击项目-> Properties ...-> Java Build Path),可以在库选项卡上将JDIC.jar添加为库,展开它,然后编辑Native Library Location属性。指向包含本地库的文件夹:在我的情况下是/ usr / local / lib。
因此,基本上,您可以在启动配置中将-Djava.library.path添加为VM参数,或者按照在 http://www.eclipsezone.com/eclipse/forums/t49342.html
我希望它能对遇到此问题的人们有所帮助。
祝你有美好的一天。