“/usr/bin/javac: /lib/ld-linux.so.2: 错误的 ELF 解释器:没有这样的文件或目录”

Posted

技术标签:

【中文标题】“/usr/bin/javac: /lib/ld-linux.so.2: 错误的 ELF 解释器:没有这样的文件或目录”【英文标题】:"/usr/bin/javac: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory" 【发布时间】:2018-09-16 03:57:35 【问题描述】:

我在 linux 服务器 RHEL 7 中安装了 jdk1.8.0_161。由于“/usr/bin/javac: /lib/ld-linux.so.2: bad ELF interpreter: No这样的文件或目录”

以下是我安装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】:

看起来您在 /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 的问题? jdk-8u162-linux-x64.rpm 安装到 /usr/java/ : root。 .....和 ​​/etc/alternatives/ :根。 .....另外:# 是根提示符。 ....

以上是关于“/usr/bin/javac: /lib/ld-linux.so.2: 错误的 ELF 解释器:没有这样的文件或目录”的主要内容,如果未能解决你的问题,请参考以下文章