我正在尝试从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时引发的异常将导致关键的本机代码库。
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被添加为依赖项
<dependency>
<GroupId>org.zeromq</groupId>
<artifactId>jzmq</artifactId>
version>2.2.2</version>
</dependency>2引用本机库的jzmq的pom.xml。
<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>发布于 2014-01-08 11:49:44
您需要告诉Java在哪里可以找到本机库。
java -Djava.library.path=/usr/local/lib xxxxx 要运行jzmq,您需要两样东西,
有关详细信息,请参阅http://zeromq.org/bindings:java
为了避免配置问题,我相信你可以检查一下如何嵌入本地库。当"org.zeromq.ZMQ“类初始化自身时,它将首先尝试加载嵌入库,
static {
// if no embedded native library, revert to loading from java.library.path
if (!EmbeddedLibraryTools.LOADED_EMBEDDED_LIBRARY)
System.loadLibrary("jzmq");
}https://stackoverflow.com/questions/18902341
复制相似问题