我正在尝试从 Maven 存储库 ( http://search.maven.org/#search|ga|1|a%3A%22jzmq%22 ) 安装 jzmq,即 Java ZeroMQ 绑定。当作为依赖项添加到我的 pom.xml[1] 时,Maven 会按预期下载提供 Java 库的主 jar。除了主库之外,jzmq 还需要一个本地代码库,Maven 似乎没有下载该库。由于缺少本机代码库,Java 库在运行时引发异常。
存储库中提供了本机库,并且 jzmq 的 pom.xml[2] 文件似乎指定应下载本机库 (libjzmq.so)。如果我下载库并手动设置本机库位置,那么一切正常,但是我希望这可以通过 Maven 自动化。
我不确定为什么 Maven 不下载和安装本机库,任何有关如何解决此问题的建议或建议将不胜感激。
我正在使用 OpenJDK 和 Apache Maven 3.0.4 运行最新的 Ubuntu 版本
[0] 使用 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>