我刚刚在新的 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 位版本可以解决问题。