jar和war的打包方式

Differences Between JAR and WAR Packaging

  • JAR Packaging
    Simply put, JAR – or Java Archive – is a package file format. JAR files have the .jar extension andmay contain libraries, resources, and metadata files.
    Essentially, it’s a zipped file containing the compressed versions of .class files and resources of compiled Java libraries and applications.
    For example, here’s a simple JAR file structure:
META-INF/
    MANIFEST.MF`         
com/
    baeldung/
        MyApplication.class

The META-INF/MANIFEST.MF file may contain additional metadata about the files stored in the archive.
We can create a JAR file using the jar command or with tools like Maven.

  • WAR Packaging
    WAR stands for Web Application Archive or Web Application Resource. These archive files have the .war extension and are used to package web applications that we can deploy on any Servlet/JSP container.
    Here’s an example layout of a typical WAR file structure:
META-INF/
    MANIFEST.MF
    
WEB-INF/
    web.xml
    jsp/
        helloWorld.jsp
    classes/
        static/
    templates/
        application.properties
    lib/
        // *.jar files as libs

Inside, it has a META-INF directory holding useful information in the MANIFEST.MF about the web archive. The META-INF directory is private and can’t be accessed from the outside.
On the other hand, it also contains the WEB-INF public directory with all the static web resources, **including HTML pages, images, and JS files. Moreover, it contains the web.xml file, servlet classes, and libraries.**

We can use the same tools and commands that we used to build a JAR to build a .war archive.

  • Key Differences
    So, what are the key differences between these two archive types?
  1. The first and most obvious difference is the file extension. JARs have the .jar extension, whereas the WAR file has the .war extension.扩展名不同

  2. The second main difference is their purpose and the way they function. JAR files allow us to package multiple files in order to use it as a library, plugin, or any kind of application. On the other hand, WAR files are used only for web applications.jar包应用范围更广

  3. The structure of the archives is also different. We can create a JAR with any desired structure. In contrast, WAR has a predefined structure with WEB-INF and META-INF directories.jar结构更自由

Finally, we can run a JAR from the command line if we build it as an executable JAR without using additional software. Or, we can use it as a library. In contrast, we need a server to execute a WAR.jar可随时编译执行,war需要服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值