首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ZeroMQ安装(jzmq),缺少本地代码库

使用ZeroMQ安装(jzmq),缺少本地代码库
EN

Stack Overflow用户
提问于 2013-09-20 02:29:19
回答 2查看 7.1K关注 0票数 10

我正在尝试从Maven存储库(http://search.maven.org/#search|ga|1|a%3A%22jzmq%22)安装jzmq,Java。当作为依赖项添加到我的Java时,pom.xml1会下载主jar,它提供了一个Java库。除了主库之外,jzmq还需要一个本地代码库,而Maven似乎不会下载该库。在运行时,由于缺少本机代码库,Java库将引发异常。

本机库是在存储库中提供的,并且jzmq的pom.xml2文件似乎指定应该下载本机库(libjzmq.so)。如果我下载这个库并手动设置本地库的位置,那么一切都可以正常工作,但是我更希望这可以通过Maven自动完成。

我不确定为什么Maven没有下载并安装本地库,任何关于如何解决这个问题的建议或建议都将不胜感激。

我正在使用OpenJDK和Apache Maven3.0.4运行最新的Ubuntu发行版

在使用Maven提供的jzmq时引发的异常将导致关键的本机代码库。

代码语言:javascript
复制
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jzmq in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1874)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    at java.lang.System.loadLibrary(System.java:1087)
    at org.zeromq.ZMQ.<clinit>(ZMQ.java:39)

1我的pom.xml,其中jzmq被添加为依赖项

代码语言:javascript
复制
<dependency>
<GroupId>org.zeromq</groupId>
<artifactId>jzmq</artifactId>
version>2.2.2</version>
</dependency>

2引用本机库的jzmq的pom.xml。

代码语言:javascript
复制
<profile>
<id>Linux</id>
<activation>
<property>
<name>os.name</name>
<value>Linux</value>
</property></activation>
<properties>
<native.os>${os.name}</native.os>
<native.path>src/.libs/libjzmq.so</native.path>
<!-- Use platform-specific path separators here: -->
<native.library-path>src/.libs/</native.library-path>
</properties>
</profile>
EN

回答 2

Stack Overflow用户

发布于 2014-01-08 11:49:44

您需要告诉Java在哪里可以找到本机库。

代码语言:javascript
复制
java -Djava.library.path=/usr/local/lib xxxxx 

要运行jzmq,您需要两样东西,

  1. /usr/local/share/java/zmq.jar
  2. native库,(libjzmq.dylib或libjzmq.dll或libjzmq.so)

有关详细信息,请参阅http://zeromq.org/bindings:java

为了避免配置问题,我相信你可以检查一下如何嵌入本地库。当"org.zeromq.ZMQ“类初始化自身时,它将首先尝试加载嵌入库,

代码语言:javascript
复制
static {
       // if no embedded native library, revert to loading from java.library.path
    if (!EmbeddedLibraryTools.LOADED_EMBEDDED_LIBRARY)
        System.loadLibrary("jzmq");
}
票数 5
EN

Stack Overflow用户

发布于 2020-06-03 01:11:35

或者,如果您不喜欢使用本机库,并且只想快速入门,则可以通过在pom.xml中添加以下内容来选择使用与zeromq库等效的java库

代码语言:javascript
复制
 <dependency>
    <groupId>org.zeromq</groupId>
    <artifactId>jeromq</artifactId>
    <version>0.5.2</version>
 </dependency>

有关差异的更多详细信息,请参阅已回答的问题here

有关jeromq版本的最新列表,请参阅the存储库here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18902341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档