java 已安装但无法运行(依赖性问题??)

java 已安装但无法运行(依赖性问题??)

我刚刚在新的 VPS 上安装了 Java 8,我正确设置了链接,但是 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 机器。

答案1

检查用于替代方案的所有符号链接是否正常:

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

如果缺少链接,请尝试通过递归列表找到它。例如:

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

答案2

问题是我意外地安装了 32 位 Java 版本,尽管我的系统是 64 位的。如果有人知道为什么 32 位版本无法运行(因为它通常应该在 64 位机器上运行),我将不胜感激。

无论如何,安装 64 位版本可以解决问题。

相关内容