调用 java 时出现“没有该文件或目录”

调用 java 时出现“没有该文件或目录”

我正在尝试将 Oracle JDK 7 32 位重新安装到 64 位 Ubuntu(之前安装了 64 位 JDK)。JDK 目前位于/usr/lib/jvm/jdk1.7.0。我调用

sudo update-alternatives --remove "java" "/usr/lib/jvm/jdk1.7.0/bin/java"
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1

进而:

/usr/lib/jvm/jdk1.7.0/bin$ java
bash: /usr/bin/java: No such file or directory

为何java无法调用?

答案1

显示此消息是因为 Ubuntu 64 位中缺少一些 32 位库。运行:

apt-get install libc6-i386

Java 已安装,在列表中,但执行时出现“./java:没有此文件或目录”更多细节

答案2

我正在帮助一位朋友将他们的 RiotBoard 安装在 Linaro-Ubuntu 上,以便将其设置为 minecraft 服务器。我们遇到了同样的错误。我发现的问题是 Java 引用了/lib/ld-linux-armhf.so.3系统中不存在的内容。当您查看/lib唯一的加载文件时,/lib/ld-linux.so.3我只需软链接它们就可以了。下面是我解决问题的方法以及我修复它的方法。

root@linaro-ubuntu-desktop:/opt/java/jdk1.8.0_06/bin# java
-su: /usr/bin/java: No such file or directory

root@linaro-ubuntu-desktop:/opt/java/jdk1.8.0_06/bin# strings java

/lib/ld-linux-armhf.so.3
qwwBI
libpthread.so.0
_Jv_RegisterClasses
libjli.so
_ITM_deregisterTMCloneTable
JLI_Launch
__gmon_start__
_ITM_registerTMCloneTable
libdl.so.2
libc.so.6
abort
__libc_start_main
lib.so
$ORIGIN/../lib/arm/jli:$ORIGIN/../lib/arm
SUNWprivate_1.1
GLIBC_2.4
1.8.0_06-b23
java

root@linaro-ubuntu-desktop:/opt/java/jdk1.8.0_06/bin# ls /lib/ld*

/lib/ld-linux.so.3

root@linaro-ubuntu-desktop:/opt/java/jdk1.8.0_06/bin# ln -s /lib/ld-linux.so.3 /lib/ld-linux-armhf.so.3

root@linaro-ubuntu-desktop:/opt/java/jdk1.8.0_06/bin# ls /lib/ld*

/lib/ld-linux-armhf.so.3  /lib/ld-linux.so.3


root@linaro-ubuntu-desktop:/opt/java/jdk1.8.0_06/bin# java -version

java version "1.8.0_06"

Java(TM) SE Runtime Environment (build 1.8.0_06-b23)
Java HotSpot(TM) Client VM (build 25.6-b23, mixed mode)
root@linaro-ubuntu-desktop:/opt/java/jdk1.8.0_06/bin#

答案3

你正在做的是尝试执行二进制文件而不告诉它的路径,
为了执行 java 二进制文件,请在 bin 文件夹中尝试“./java”,否则请包含其完整路径,对于安装,你可以尝试以下操作:- http://www.devsniper.com/ubuntu-12-04-install-sun-jdk-6-7/

相关内容