在 Linux 服务器上解压 .war 文件通常有几种方法,取决于你的具体需求(是仅仅查看内容、提取部分文件,还是完整部署)。
以下是几种常用且高效的方法:
使用 unzip 命令(最推荐,通用性强)
.war 文件本质上是 ZIP 格式的归档文件,因此可以直接使用 unzip 命令解压。
基本解压
unzip your-application.war
这会将文件解压到当前目录。
解压到指定目录
unzip your-application.war -d /path/to/target/directory
-d参数指定目标目录。- 如果目标目录不存在,
unzip会自动创建它(取决于版本和配置,有时需先手动mkdir)。
覆盖已有文件(谨慎使用)
如果目标目录中已有同名文件,默认会询问是否覆盖,可以使用 -o 参数强制覆盖:
unzip -o your-application.war -d /path/to/target/directory
(不解压)
unzip -l your-application.war
使用 jar 命令(Java 自带)
由于 .war 是 Java Web 归档文件,JDK 自带的 jar 工具也可以处理它。
解压到当前目录
jar xvf your-application.war
x:解压(extract)v:显示详细过程(verbose)f:指定文件(file)
解压到指定目录
jar 命令本身不支持直接指定输出目录,但可以通过结合 mkdir 和 cd 实现:
mkdir -p /path/to/target/directory jar xvf your-application.war -C /path/to/target/directory .
-C:切换到指定目录后再执行操作。- 最后的 表示将文件解压到该目录下。
⚠️ 注意:
jar命令在某些旧版本中可能不支持-C参数,建议优先使用unzip。
使用 7z 命令(处理大文件或压缩率更高)
如果服务器安装了 p7zip 或
7zip,也可以使用它:
7z x your-application.war -o/path/to/target/directory
x:完整路径解压(保留目录结构)-o:指定输出目录(注意是-o不是-d)
常见问题与注意事项
权限问题
如果解压后需要修改文件权限(Web 服务器用户如 tomcat 或 nginx 需要读取权限),可以使用 chown 或 chmod:
# 将目录所有权改为 tomcat 用户
sudo chown -R tomcat:tomcat /path/to/target/directory
# 设置目录权限为 755,文件为 644
sudo find /path/to/target/directory -type d -exec chmod 755 {} ;
sudo find /path/to/target/directory -type f -exec chmod 644 {} ;
解压后目录结构
解压 .war 后,通常会得到以下结构:
your-application/
├── META-INF/
│ └── MANIFEST.MF
├── WEB-INF/
│ ├── classes/
│ ├── lib/
│ └── web.xml
├── index.jsp
└── ...
大多数 Web 容器(如 Tomcat)期望应用部署在
webapps/your-application/ 目录下,或者直接将 .war 文件放入 webapps/ 目录由容器自动解压。
如果只是想部署,无需手动解压
如果你使用的是 Tomcat、Jetty 或 WildFly 等应用服务器,通常只需将 .war 文件复制到服务器的 webapps/ 目录,服务器会自动解压并部署:
cp your-application.war /opt/tomcat/webapps/
总结建议
| 场景 | 推荐命令 |
|---|---|
| 通用解压,简单快速 | unzip your-application.war -d /target/dir |
没有 unzip,只有 JDK |
jar xvf your-application.war -C /target/dir . |
| 只需查看内容 | unzip -l your-application.war |
| 部署到 Tomcat | 直接复制 .war 到 webapps/ 目录 |
如有其他具体问题(如解压失败、权限错误等),欢迎提供更多信息!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/480727.html



