线程中出现异常&;quot;main&;lang.UnssufiedLinkError:在Eclipse中的java.Library.Path中没有jzmq
本教程将介绍线程中出现异常&;quot;main&;lang.UnssufiedLinkError:在Eclipse中的java.Library.Path中没有jzmq的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
导入org.zeromq.ZMQ;
-对于上面的导入语句,我使用的是jzmq主文件夹中的"org文件夹",该文件夹由ZMQ.Java文件组成。
-因此,编译没有问题。当我开始运行该程序时,它显示以下异常
线程"main"java.lang.UnssufiedLinkError中出现异常:在java.Library.Path中没有jzmq
在java.lang.ClassLoader.loadLibrary(未知源)
在java.lang.Rounme.loadLibrary0(未知源)
在java.lang.System.loadLibrary(未知源)
在org.zeromq.ZMQ。(ZMQ.Java:41)
在server.main(Server.Java:13)
我应该做些什么?
对于Java中的ZeroMQ HelloWorld示例,我必须下载哪些包,必须使用哪些导入语句?
我看到很多人都在使用libzmq.dll、jzmq.dll和一些JAR文件来避免这种异常。但我想要一个明确的答案。
推荐答案
此库(Jzmq)绑定到本机库libzmq。
如果您不使用libzmq的功能(例如IPC),您最好使用完整的Java实现-Jeromq(mvnrepo,jeromq git)。它具有几乎相同的功能。
否则,如果您需要jzmq,则必须正确编译它。
这是我在Windows x64上编译它的方式:
要构建该库,您需要使用IDE Visual Studio 2010或更高版本。在本例中,我使用的是2013版本。所有工作都在C:zmq
目录中执行(例如)。
获取zeromq、jzmq和libNa-1.0.10源。
将zeromq目录的全部内容复制到C:zmq
。
创建目录C:zmqjava
。
将jzmq目录的全部内容复制到C:zmqjava
。
创建目录C:zmqlibsodium
和C:zmqlibsodium
复制到C:zmqlibsodiumi
nlibsodium-1.0.10-msvcWin32
和
libsodium-1.0.10-msvcx64
目录。
创建目录C:zmqlibsodiumsrc
。
复制到C:zmqlibsodiumsrc directory
LibNa-1.0.10-msvc包括。
零位
在Visual Studio中打开目录C:zmquildsmsvc
中的相应zeromq解决方案文件。
打开配置管理器。主动配置解决方案-选择DyRelease。灵动解决方案平台-选择x64。
打开项目属性页,转到配置属性-C/C++-常规,检查包含文件目录的路径。
然后选择链接器-常规,并检查库目录的路径。
配置文件C:zmquildsmsvcvs2013libsodium.import.props
部分中的路径正确。
然后构建它,如果一切正常,请问在C:zmqinx64Releasev120dynamic
目录中获得dll。如果不是,请签出日志,进行更改并重建它。
jzmq.
现在从目录C:zmqjavauildsmsvc
打开相应的jzmq解决方案文件
以及在zeromq项目中打开配置管理器并选择Release和x64 Platform。
打开项目属性页面,转到配置属性-VC++目录并检查安装JDK的路径是否正确。
请问在那里看到类似以下内容:
........include;C:Program FilesJavajdk1.7.0_71include;C:Program
FilesJavajdk1.7.0_71includewin32;$(IncludePath)
还应检查库目录(忘记其名称)路径是否包含指向构建了zeromq库的目录的路径。
它将如下所示:
........inx64Releasev120dynamic;$(LibraryPath)
在属性页上,转到配置属性-程序集事件-程序集前事件,并选中属性"命令提示符"(首先在复制命令中检查文件的路径)。
它将如下所示:
copy ..config.hpp "......srcmainc++"
然后构建jzmq,如果一切正常,请问在C:zmqjavalib
中获得文件。
如果不是,请签出日志,进行更改并重建它。
在C:zmq
中,您只需要binjavalib
目录,其余目录可以删除。
将路径添加到binx64Releasev120dynamic
并使用-Djava.library.path="path_to_javalib"
运行您的Java应用程序
好了关于线程中出现异常&;quot;main&;lang.UnssufiedLinkError:在Eclipse中的java.Library.Path中没有jzmq的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。