Java 安装过程中出错:无法执行二进制文件:Exec 格式错误

Java 安装过程中出错:无法执行二进制文件:Exec 格式错误

我感觉我把某件事搞砸了,我是一个新的 Linux 用户,所以我试图安装 Java……

所以基本上我在终端运行的命令如下:

java -version

我收到的错误

-bash: /usr/local/java/jdk-16/bin/java: cannot execute binary file: Exec format error

我基本上是按照这个教程做的,我可能知道问题出在哪里,但现在我找不到我按照哪个教程做的,因为我做完所有事情后它没有起作用,所以我尝试了另一个...我真的记不清我创建这些更改的确切路径(在哪个目录中)。我只知道我进入了/exec/,还有一些我用nano更改的其他文件,我记得我添加了一些类似的东西,$JAVA_HOME = ....然后是一些东西。

如果有人能帮忙,我将不胜感激

答案1

我实际上通过执行以下操作解决了这个问题:

sudo update-alternatives --config java

此命令显示 Java 的每个安装及其安装路径:

Output:

There are 4 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-16-oracle/bin/java             1091      manual mode
* 3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  4            /usr/local/java/jdk-16/bin/java                  1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-16-oracle/bin/java to provide /usr/bin/java (java) in manual mode

我选择第二个并将路径复制到它然后执行以下操作:

sudo nano /etc/environment

并在该文件中添加以下内容:

JAVA_HOME="/usr/lib/jvm/java-16-oracle/bin/java "

我重新加载文件以应用先前的命令:

source /etc/environment

运行后java -version一切正常。

答案2

穆琼的博客:

1.问题——下载了错误的JDK版本

错误 Exec 格式错误意味着我们为特定平台下载了错误的 JDK 构建。

下载适合您的 CPU 架构的 JDK。

就我而言,我错误地下载了后缀为 aarch64 的版本。而它却像往常一样是 x64。

运行lscpu即可找到cpu架构。

相关内容