1. ホーム
  2. java

[解決済み] ELFクラスが間違っています。ELFCLASS32

2022-01-28 03:43:09

質問

Solarisマシンで私のアプリケーションを実行すると、ある.soファイルを指してこのエラーが発生します。しかし、私のWindowsマシンでは、アプリケーションは問題なく実行されます。もし私が間違っていなければ、私のアプリケーションは64ビット版を期待していますが、Solarisマシンには32ビット版の.soファイルしかありません。32ビット版を使用するように修正する方法はありますか?私は、それがバイトコードとは何の関係もなく、おそらくJVMに関係していることを理解しています。私は-d32または-d64を使用して実行しようとしましたが、それは効果的ではありません。

UPDATEしています。

これが正確なエラーです。

Exception in thread "main" java.lang.UnsatisfiedLinkError: librvjs11.so: ld.so.1: java: fatal: librvjs11.so: wrong ELF class: ELFCLASS32<br>
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)<br>
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)<br>
    at java.lang.ClassLoader.loadLibrary(Unknown Source)<br>
    at java.lang.Runtime.loadLibrary0(Unknown Source)<br>
    at java.lang.System.loadLibrary(Unknown Source)<br>

LD_LIBRARY_PATHを更新して、上のファイルを含むディレクトリが含まれるようにしました。

どのように解決するのですか?

ベースは 他の回答での会話 JVMは64ビットプロセスであることが推測されました。このことは pflags というコマンドをSolarisで実行します。

どうやら -d32 フラグが無視されていました。これは、JVMが64ビットであり、32ビットモードで動作できない可能性があるためです。そのため、32ビット版のJVMをインストールし、同じものを使用することで解決できるかもしれません。