Unix java.lang.UnsatifiedLinkError:jMQ(在java.library.path中找不到)
我有Java代码来加载C库(32位),我有AIX7.1系统,它有32位Java-6来运行Java代码。但我有一个例外 代码:Unix java.lang.UnsatifiedLinkError:jMQ(在java.library.path中找不到),unix,java-native-interface,Unix,Java Native Interface,我有Java代码来加载C库(32位),我有AIX7.1系统,它有32位Java-6来运行Java代码。但我有一个例外 代码: public class NativeMQChannel { static { // String jMQlibPath = System.getenv("JMQLIBPATH"); // String libraryFile = (jMQlibPath != null ? jMQlibPath : ""); //
public class NativeMQChannel {
static {
// String jMQlibPath = System.getenv("JMQLIBPATH");
// String libraryFile = (jMQlibPath != null ? jMQlibPath : "");
// libraryFile = libraryFile + "jMQ";
System.loadLibrary("jMQ");
}
Exception:
Exception in thread "ActiveMQ Session Task-2" java.lang.UnsatisfiedLinkError: jMQ (Not found in java.library.path)
at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1034)
at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1004)
at java.lang.System.loadLibrary(System.java:507)
at com.ecs.middleware.channel.NativeMQChannel.<clinit>(NativeMQChannel.java:19)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:199)
公共类NativeMQChannel{
静止的{
//字符串jMQlibPath=System.getenv(“jMQlibPath”);
//字符串库文件=(jMQlibPath!=null?jMQlibPath:);
//libraryFile=libraryFile+“jMQ”;
系统加载库(“jMQ”);
}
例外情况:
线程“ActiveMQ会话任务-2”java.lang.UnsatifiedLink中出现异常错误:jMQ(在java.library.path中找不到)
位于java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1034)
位于java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1004)
位于java.lang.System.loadLibrary(System.java:507)
位于com.ecs.middleware.channel.NativeMQChannel.(NativeMQChannel.java:19)
位于java.lang.J9VMInternals.initializeImpl(本机方法)
在java.lang.J9VMInternals.initialize(J9VMInternals.java:199)中
有什么解决方案吗?请扩展您的帖子:您真的有一个
libjMQ.so
文件吗?它在哪里?这个命令的输出是什么:ldd/somepath/libjMQ.so;file/somepath/libjMQ.so
?是属性java.library.path
吗?不过不要着急,慢慢来。