线程中出现异常"main&lang.UnssufiedLinkError:在Eclipse中的java.Library.Path中没有jzmq

本教程将介绍线程中出现异常"main&lang.UnssufiedLinkError:在Eclipse中的java.Library.Path中没有jzmq的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

线程中出现异常"main&lang.UnssufiedLinkError:在Eclipse中的java.Library.Path中没有jzmq 教程 第1张

问题描述

导入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:zmqlibsodiumC:zmqlibsodium

    复制到C:zmqlibsodiuminlibsodium-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应用程序

好了关于线程中出现异常"main&lang.UnssufiedLinkError:在Eclipse中的java.Library.Path中没有jzmq的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。