Java 中的 jar 包和 war 包

Java 中的 jar 包和 war 包

jar 包

简单地说,JAR(Java Archive)是一种包文件格式。JAR 文件具有 .jar 扩展名,可以包含库、资源和元数据文件。

本质上,它是一个压缩文件,包含压缩版本的.class文件和编译后的Java库和应用程序的资源。

例如,下面是一个简单的 JAR 文件结构:

META-INF/

MANIFEST.MF

com/

baeldung/

MyApplication.class

其中,在 META-INF/manifest.mf 文件小红可能包含有关存档中存储的文件的其他元数据。

我们可以使用 jar 命令或 maven 等工具来创建jar文件。

war 包

war 代表 Web 应用程序存档或 Web 应用程序资源。这些存档文件具有 .war 扩展名,用于打包我们可以部署在任何 servlet/jsp 容器上的 Web 应用程序。

下面是一个典型的WAR文件结构的布局示例:

META-INF/

MANIFEST.MF

WEB-INF/

web.xml

jsp/

helloWorld.jsp

classes/

static/

templates/

application.properties

lib/

// *.jar files as libs

在内部,它有一个 META-INF 目录,在 manifest.mf 中保存着关于 web 存档的的有用信息。META-INF 目录是私有的,无法从外部访问。

另一方面,它还包含 WEB-INF 公共目录,其中包含所有静态 Web 资源,包括 HTML 页面、图像和 JS 文件。此外,它还包含 web.xml 文件、servlet 类和库。

我们可以使用与构建 JAR 时相同的工具和命令来构建 war 文件。

jar 包和 war 包的区别

  1. 文件扩展名不同
  2. 目的和运作方式不同
  3. 文件的结构也不同

JAR 具有 .jar 扩展名,而 WAR 文件具有 .war 扩展名。

JAR 文件允许我们打包多个文件,以便将其用作库,插件或任何类型的应用程序。另一方面,WAR 文件仅用于 Web 应用程序,一个 war 包可以理解为是一个 web 项目,里面是项目的所有东西。

我们可以创建具有任何所需结构的 JAR 。相比之下,WAR 具有 WEB-INF 和 META-INF 目录的预定义结构。

发布了147 篇原创文章 · 获赞 72 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Pranuts_/article/details/101786186