Вы работаете в 64-битной системе без 32-битной среды выполнения.
Предполагается, что проблема с Ubuntu / Debian:
apt-get install libc6-i386
Или вы должны установить 64-битную версию пакета в эту виртуальную машину (что, вероятно, является лучшим решением).
Сообщение об ошибке исходит от компоновщика / загрузчика во время выполнения. если вы сделаете readelf -l java
, вы найдете строку вроде:
[Requesting program interpreter: /lib/ld-linux.so.2]
Это то, что вы ожидаете от 32-битного приложения, и, возможно, у вас не установлена 32-битная среда - проверьте с помощью ls -l этого program interpreter
.
и пример для 64-битной программы будет выглядеть (ваша система может отличаться):
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
Если это не так, и у вас установлен 32-битный libc, вы можете попробовать ldd java
, который выдаст список вроде:
linux-gate.so.1 => (0xf76ef000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76b3000)
libjli.so => /home/bubba/java/jdk1.7.0_02/bin/./../jre/lib/i386/jli/libjli.so (0xf769f000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7699000)
libc.so.6 => /lib32/libc.so.6 (0xf751f000)
/lib/ld-linux.so.2 (0xf76f0000)
если есть строки с надписью not found
, то вы должны добавить pagkages, при условии, что, как вы можете видеть из этого ldd
, все зависимости являются базовыми библиотеками, которые должны присутствовать практически во всех системах Linux.