"/usr/bin/javac: /lib/ld-linux.so.2: 坏的ELF解释器: 没有该文件或目录"

4

我在Linux服务器RHEL 7中安装了jdk1.8.0_161。由于“/usr/bin/javac:/lib/ld-linux.so.2:bad ELF interpreter:No such file or directory”,我无法检查Java版本。

以下是我安装jdk时遵循的步骤:

cd /opt/jdk1.8.0_161/
alternatives --install /usr/bin/java java /opt/jdk1.8.0_161/bin/java 2
alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /opt/jdk1.8.0_161/bin/java

Enter to keep the current selection[+], or type selection number: 1

alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_161/bin/jar 2
alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_161/bin/javac 2
alternatives --set jar /opt/jdk1.8.0_161/bin/jar
alternatives --set javac /opt/jdk1.8.0_161/bin/javac

java -version
-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory


export JAVA_HOME=/opt/jdk1.8.0_161
export JRE_HOME=/opt/jdk1.8.0_161/jre
export PATH=$PATH:/opt/jdk1.8.0_161/bin:/opt/jdk1.8.0_161/jre/bin
1个回答

5

看起来您在/opt/目录下解压了一个tar.gz文件。这个版本显然试图使用32位的/lib/ld-linux.so.2链接器。(64位链接器是/usr/lib64/ld-linux-x86-64.so.2 -> ld-2.17.so)

对于EL7,请使用"rpm" 8u162 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmljdk-8u162-linux-x64.rpm

# cd Downloads/ && yum install ./jdk-8u162-linux-x64.rpm

# alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_162/bin/java 2
# alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_162/bin/javac 2

# alternatives --config java
# alternatives --config javac

没有问题...


如果您正在使用共享资源,因此没有root权限,那么您该如何解决@Koushic的问题? - Adriana LE
jdk-8u162-linux-x64.rpm 安装到 /usr/java/ : root。..... 和 /etc/alternatives/ : root。..... 另外:# 是 root 提示符。.... - Knud Larsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接