私は外部ライブラリを読み込もうとするJavaアプリケーションを持っていますが、同じ例外が発生しています。ELFクラスが間違っています:ELFCLASS64
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]
これはappartantly 64ビットのネイティブの共有ライブラリをロードしようとしている32ビットのJVMを行うようになっています。しかし、私のJavaのバージョンは64ビット
Javaのバージョン "1.7.0_79" Javaの(TM)SEランタイム環境( 1.7.0_79-B15を構築する)は、Java HotSpot(TM)64ビットサーバーVM(ビルドです24.79- b02、混合モード)
アプリケーションは、Mavenを使用してビルドされています。
おかげ
実際に実行している* Javaのバージョンが64ビットであることは確かですか?コマンドラインから 'java -version'を実行しても、アプリケーションで使用されているJVMは表示されません(Webアプリケーションの場合など)。 –
はい、Java 1.7のsolarisサーバーにデプロイされています。64ビット – user3520080