Jau*_*nty 9 java java-native-interface zeromq maven
我试图从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>
您需要告诉Java在哪里可以找到本机库.
java -Djava.library.path=/usr/local/lib xxxxx 
要运行jzmq,你需要两件事,
有关详细信息,请参阅http://zeromq.org/bindings:java
为避免配置问题,我相信您可以检查如何嵌入本机库.当类"org.zeromq.ZMQ"初始化时,它将首先尝试加载嵌入式lib,
static {
       // if no embedded native library, revert to loading from java.library.path
    if (!EmbeddedLibraryTools.LOADED_EMBEDDED_LIBRARY)
        System.loadLibrary("jzmq");
}
| 归档时间: | 
 | 
| 查看次数: | 6772 次 | 
| 最近记录: |