我感觉我把某件事搞砸了,我是一个新的 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架构。