linux安装jdk执行java --version后报错
liuzhicheng@Huaqin:/usr/lib/jdk_16.0.2/jdk-16.0.2$ java --version
bash: /usr/lib/jdk_16.0.2/jdk-16.0.2/bin/java: cannot execute binary file: 可执行文件格式错误
这个问题是jdk的安装位数和 linux操作系统的位数不一致造成的。
可以执行以下确认该问题

查看linux系统的位数
执行: getconf LONG_BIT

返回如下
liuzhicheng@Huaqin:/usr/lib/jdk_16.0.2/jdk-16.0.2$ getconf LONG_BIT
64
liuzhicheng@Huaqin:/usr/lib/jdk_16.0.2/jdk-16.0.2$ 
 如果是32 的就会直接显示32
getconf命令可以获取系统的基本配置信息,比如操作系统位数,内存大小,磁盘大小等。

还有一种方式 :
uname -a
显示如下:
liuzhicheng@Huaqin:/usr/lib/jdk_16.0.2/jdk-16.0.2$ uname -a
Linux Huaqin 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
liuzhicheng@Huaqin:/usr/lib/jdk_16.0.2/jdk-16.0.2$ 
如果有64字样的代表是64为的 , 如果是32的就没有显示。

知道了操作系统的位数以后,再对比jdk的位数会发现是不一致的,在对症下药即可。
从Java官网下载JDK包安装

http://www.oracle.com/technetwork/java/javase/downloads/index.html

jdk-16.0.2_linux-x64_bin.tar.gz
我之前下载的是这个jdk-16.0.2_linux-aarch64_bin.tar.gz
解压缩,放到自定义目录,创建jdk要存放的文件夹
sudo mkdir /usr/lib/jdk_1.8
cd ~/Downloads
sudo tar -zxvf jdk-16.0.2_linux-x64_bin.tar.gz -C /usr/lib/jdk_16.0.2
vim ~/.bashrc
在末尾追加下面内容,保存退出:

#set oracle jdk environment
export JAVA_HOME=/usr/lib/jdk-16.0.2  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

使环境变量生效

source ~/.bashrc

安装完成后,可以在命令行模式下输入“java --version”指令验证是否安装成功
liuzhicheng@Huaqin:~$ java --version
java 16.0.2 2021-07-20
Java(TM) SE Runtime Environment (build 16.0.2+7-67)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
liuzhicheng@Huaqin:~$ 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐