Я просто установил Java 8 на своем новом VPS, я установил ссылки правильно, но, все еще Java или javac не будет работать:
root@vpsXXXXX:~# update-alternatives --display java
java - Auto-Modus
Link verweist zur Zeit auf /usr/lib/jvm/java-8-oracle/bin/java
/usr/lib/jvm/java-8-oracle/bin/java - Priorität 1
Gegenwärtig »beste« Version ist »/usr/lib/jvm/java-8-oracle/bin/java«.
root@vps149825:~#
Больше specificly:
root@vpsXXXXX:~# ls -l $(readlink -f /usr/bin/java)
-rwxr-xr-x 1 uucp 143 5730 Feb 11 07:26 /usr/lib/jvm/jdk1.8.0_40/bin/java
root@vpsXXXXX:~# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Mär 11 13:32 /usr/bin/java -> /etc/alternatives/java
root@vpsXXXXX:~# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 35 Mär 11 13:39 /etc/alternatives/java -> /usr/lib/jvm/java-8-oracle/bin/java
root@vpsXXXXX:~#
sry для немца, но я думаю, что это довольно ясно. Таким образом, ссылка не является проблемой. Даже если я вхожу в directoy и пытаюсь выполнить Java оттуда, он не работает.
root@vps149825:~# cd ../usr/lib/jvm/java-8-oracle/bin/
root@vps149825:/usr/lib/jvm/java-8-oracle/bin# ls
appletviewer javafxpackager jdb jrunscript pack200 unpack200
ControlPanel javah jdeps jsadebugd policytool wsgen
extcheck javap jhat jstack rmic wsimport
idlj javapackager jinfo jstat rmid xjc
jar java-rmi.cgi jjs jstatd rmiregistry
jarsigner javaws jmap jvisualvm schemagen
java jcmd jmc keytool serialver
javac jconsole jmc.ini native2ascii servertool
javadoc jcontrol jps orbd tnameserv
root@vps149825:/usr/lib/jvm/java-8-oracle/bin# ./java
-bash: ./java: Datei oder Verzeichnis nicht gefunden
root@vps149825:/usr/lib/jvm/java-8-oracle/bin#
Также, когда я пробую
ldd /usr/lib/jvm/jdk1.8.0_40/bin/java
это говорит:
not a dynamic executable
Также:
root@vpsXXXXXXX:/usr/lib/jvm/jdk1.8.0_40/bin# file java
java: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, BuildID[sha1]=0x476386745161d6029010bc153c65060693cca771, not stripped
Я отчасти думаю, что существуют некоторые пропавшие без вести зависимостей?
Я использую машину debian 6.7 64 бита.
Проверьте, все ли символические ссылки, используемые для альтернатив, в порядке:
ls -l $(readlink -f /usr/bin/java)
Если ссылка отсутствует, попробуйте найти ее, выполнив рекурсивный листинг. Например:
ls -l /usr/bin/java
ls -l /etc/alternatives/java
...
Проблема заключалась в том, что я случайно установил 32-битную версию Java, хотя у меня 64-битная система. Если кто-нибудь знает, почему 32-битная версия не работает (потому что обычно она должна работать на 64-битной машине), я был бы признателен.
В любом случае установка 64-битной версии устранила проблему.