JAR包与WAR包的区别
JAR包(Java Archive)和WAR包(Web Application Archive)都是Java中常用的打包格式,但用途不同:
JAR包 (Java Archive)
- 用途:用于打包Java类文件、资源文件和元数据
- 特点:
- 标准Java应用程序打包格式
- 包含.class文件、配置文件等
- 可执行JAR包包含Main-Class清单属性
- 常用于库文件或独立应用程序
- 扩展名:.jar
- 创建命令:
jar cvf myapp.jar *
WAR包 (Web Application Archive)
- 用途:专门用于打包Web应用程序
- 特点:
- 包含JSP、Servlet、HTML、JavaScript、CSS等Web资源
- 必须包含WEB-INF目录(含web.xml等配置文件)
- 部署到Servlet容器(如Tomcat)中运行
- 可以包含JAR包作为库依赖
- 扩展名:.war
- 创建命令:通常由构建工具(如Maven)自动生成
主要区别
- 用途不同:JAR用于通用Java应用,WAR专用于Web应用
- 结构不同:WAR有特定的目录结构要求(如WEB-INF)
- 运行环境:JAR可独立运行或作为库,WAR需要Servlet容器
- 内容差异:WAR包含Web特有资源(如JSP、HTML)
现代Java Web开发中,Spring Boot等框架常使用"可执行JAR"方式打包Web应用,模糊了传统JAR/WAR的界限。