Назад | Перейти на главную страницу

java установлена, но не работает (проблема с зависимостью ??)

Я только что установил 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:~#

Более конкретно:

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:~#

извините за немецкий, но я думаю, что это довольно ясно. Так что проблема не в ссылке. Даже если я захожу в директорию и пытаюсь запустить 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

Мне кажется, что каких-то зависимостей не хватает?

Я использую 64-битную машину debian 6.7.

Проверьте, все ли символические ссылки, используемые для альтернатив, в порядке:

ls -l $(readlink -f /usr/bin/java)

Если ссылка отсутствует, попробуйте найти ее рекурсивно. Например:

ls -l /usr/bin/java
ls -l /etc/alternatives/java
...

Проблема заключалась в том, что я случайно установил 32-битную версию Java, хотя у меня 64-битная система. Если кто-нибудь знает, почему 32-битная версия не работает (потому что обычно она должна работать на 64-битной машине), я был бы признателен.

В любом случае установка 64-битной версии устранила проблему.