Когда на компьютере с Linux установлены 32-разрядные и 64-разрядные родные общие библиотеки, как JVM выбирает, что выбрать, и как он действительно знает, какой из них выбрать?
Программы javac и java связаны с использованием определенных библиотек. Просто запустите команду следующим образом:
ldd /extra/JDK8u5/jdk1.8.0_05/bin/java
linux-gate.so.1 => (0xb7846000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7819000)
libjli.so => /home/extra/JDK8u5/jdk1.8.0_05/bin/../lib/i386/jli/libjli.so (0xb7804000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb77ff000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb769c000)
/lib/ld-linux.so.2 (0xb7847000)