在Linux系统中,许多开发者习惯使用Windows或macOS上的jar
命令来打包Java应用程序,但直接在Linux终端输入jar
命令时,可能会遇到“bash: jar: command not found”的错误提示,这并非Linux系统不支持jar
命令,而是因为Java开发工具包(JDK)未正确安装或环境变量未配置,本文将详细解释这一问题的原因、解决方案,以及如何在Linux中正确使用jar
命令,同时提供相关FAQs帮助读者快速排查问题。

问题根源:为什么Linux没有jar
命令?
jar
命令是JDK的一部分,属于Java开发工具中的bin
目录下的可执行文件,当Linux系统未安装JDK或JDK的bin
目录未添加到系统的环境变量PATH
中时,终端无法找到jar
命令,从而报错,以下是常见原因:
- 未安装JDK:Linux系统默认可能只安装了Java运行时环境(JRE),而JDK包含了编译器(
javac
)、打包工具(jar
)等开发工具。 - 环境变量未配置:即使安装了JDK,如果未将
$JAVA_HOME/bin
目录添加到PATH
变量中,系统也无法定位jar
命令。 - 多版本Java冲突:系统中可能存在多个Java版本(如OpenJDK和Oracle JDK),导致
jar
命令未被正确关联。
解决方案:在Linux中安装并配置jar
命令
检查当前Java环境
确认系统是否已安装JDK,在终端输入以下命令:
java -version javac -version
- 如果
java -version
显示版本信息但javac -version
报错,说明仅安装了JRE,需升级为JDK。 - 如果两者均报错,需安装JDK。
安装JDK
根据Linux发行版的不同,安装方式有所差异:
-
基于Debian/Ubuntu的系统:
(图片来源网络,侵删)sudo apt update sudo apt install openjdk-11-jdk # 安装OpenJDK 11
-
基于RedHat/CentOS的系统:
sudo yum install java-11-openjdk-devel # 安装OpenJDK 11开发工具包
-
手动安装JDK: 从Oracle官网或Adoptium下载JDK压缩包(如
jdk-11.0.12_linux-x64_bin.tar.gz
),解压后移动到/usr/local/
:tar -xzf jdk-11.0.12_linux-x64_bin.tar.gz sudo mv jdk-11.0.12 /usr/local/
配置环境变量
安装JDK后,需设置JAVA_HOME
和PATH
变量,编辑~/.bashrc
或/etc/profile
文件(需root权限):
export JAVA_HOME=/usr/local/jdk-11.0.12 # 替换为实际JDK路径 export PATH=$JAVA_HOME/bin:$PATH
保存后执行以下命令使配置生效:

source ~/.bashrc # 或 source /etc/profile
验证jar
命令
重启终端后,输入以下命令验证:
jar -version
若显示jar
工具版本信息(如jar 11.0.12
),则配置成功。
jar
命令常用操作示例
jar
命令用于创建、列出和提取JAR(Java Archive)文件,以下是常见用法:
创建JAR文件
jar -cvf myapp.jar com/ # 将com目录下的所有文件打包为myapp.jar
-c
:创建新JAR文件。-v
:显示详细过程。-f
:指定JAR文件名。
列出JAR文件内容
jar -tf myapp.jar # 列出myapp.jar中的文件
-t
:列出JAR文件内容。
提取JAR文件
jar -xf myapp.jar # 解压myapp.jar到当前目录
-x
:解压JAR文件。
包含MANIFEST文件
jar -cvfm myapp.jar MANIFEST.MF com/ # 使用MANIFEST.MF作为清单文件
-m
:包含指定的清单文件。
增量更新JAR文件
jar -uvf myapp.jar newfile.class # 向myapp.jar中添加newfile.class
-u
:更新现有JAR文件。
常见问题排查
安装JDK后仍报错
- 检查环境变量:确保
JAVA_HOME
和PATH
配置正确,可通过echo $JAVA_HOME
和echo $PATH
验证。 - 检查权限:
$JAVA_HOME/bin
目录下的文件需有执行权限(chmod +x $JAVA_HOME/bin/*
)。
多版本Java冲突
使用update-alternatives
(Ubuntu/Debian)或alternatives
(CentOS/RHEL)管理Java版本:
sudo update-alternatives --config java # 选择默认Java版本 sudo update-alternatives --config javac # 选择默认javac版本
jar
命令执行失败
- 检查JAR文件是否损坏:尝试用
unzip
命令解压。 - 确认文件路径:避免使用特殊字符或空格的路径。
相关问答FAQs
Q1: 为什么安装了JDK后,jar
命令仍然不可用?
A1: 可能是因为环境变量未正确配置,请检查~/.bashrc
或/etc/profile
中是否添加了$JAVA_HOME/bin
到PATH
变量,并执行source
命令使配置生效,确保JAVA_HOME
指向正确的JDK安装路径。
Q2: 如何在Linux中查看已安装的JDK版本?
A2: 使用以下命令查看所有已安装的Java版本:
ls /usr/lib/jvm/ # 查看JDK安装目录 java -version # 查看当前默认Java版本 update-alternatives --display java # 显示所有Java版本路径(Ubuntu/Debian)
通过以上步骤,您可以解决Linux中“jar
命令未找到”的问题,并熟练使用jar
工具管理Java项目,如果遇到其他问题,建议查阅JDK官方文档或发行版社区支持资源。