java: cannot execute binary file

本文介绍了在Linux上安装Java时遇到的‘可执行文件格式错误’问题,原因是jdk的位数与Linux操作系统的位数不匹配。通过检查系统位数、下载正确版本的JDK并进行安装、配置环境变量,最终成功解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:~$ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值