我有一个java应用程序试图加载外部库但我一直得到相同的异常。
Caused by: java.lang.UnsatisfiedLinkError: /test/software/libraries/libraries/bin/libxejni.so: ld.so.1: java: fatal: /test/software/libraries/libraries/bin/libxejni.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method) ~[?:1.7.0_79]
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965) ~[?:1.7.0_79]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890) ~[?:1.7.0_79]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880) ~[?:1.7.0_79]
at java.lang.Runtime.loadLibrary0(Runtime.java:849) ~[?:1.7.0_79]
at java.lang.System.loadLibrary(System.java:1088) ~[?:1.7.0_79]
这与试图加载64位本机共享库的32位JVM有关。但是我的java版本是64位
java version" 1.7.0_79" Java(TM)SE运行时环境(构建 1.7.0_79-b15)Java HotSpot(TM)64位服务器VM(内置24.79-b02,混合模式)
应用程序是使用maven构建的,任何人都有任何线索可以解决这个问题吗?
由于
答案 0 :(得分:0)
检查应用程序需要加载的libxejni.so
是32位还是64位,然后为32位或64位{{1}指定java -d32
或java -d64
选项分别在运行你的应用程序时。