错误的ELF类:ELFCLASS32

jas*_*ine 9 java jvm 32bit-64bit

在Solaris计算机上运行我的应用程序时,我收到此错误指向某个.so文件.但是,应用程序在我的Windows机器上运行得很好.如果我没有弄错,我的应用程序期望64位版本,但我在Solaris机器上只有32位版本的.so文件.有没有办法解决这个问题,所以它会使用32位版本?我知道它与字节码无关,但可能与JVM无关.我尝试使用-d32或-d64运行,但它没有任何效果.

更新:

这是确切的错误:

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>
Run Code Online (Sandbox Code Playgroud)

我已经更新了LD_LIBRARY_PATH,因此它包含了包含上述文件的目录.

Vin*_*lds 8

根据另一个答案中的对话,推断出JVM是一个64位进程.使用pflagsSolaris中的命令确认了这一点.

显然,-d32传递给JVM 的标志被忽略了.这是因为JVM可能是64位的,它无法在32位模式下运行.因此,解决方案可能是安装32位版本的JVM,并使用相同的.