.jar文件和.war文件有什么区别? 仅仅是文件扩展名还是还有其他的东西?
ear jar和war文件的区别:
这些文件只是压缩文件 使用Java jar工具。这些文件是 为了不同的目的而创造。在这里 是这些文件的描述: .jar文件:.jar文件包含 图书馆、资源和 附件文件,如属性文件。 .war文件:war文件包含 可以是web应用程序 部署在任何servlet/jsp上 容器。.war文件包含jsp, Html, javascript等文件 这是网络发展所必需的 应用程序。
Sun/Oracle官方描述:
J2EETM教程:Web应用程序档案 Java归档(JAR)文件格式:基础
维基百科:
WAR文件格式(Sun) JAR文件
You add web components to a J2EE application in a package called a web application archive (WAR), which is a JAR similar to the package used for Java class libraries. A WAR usually contains other resources besides web components, including: Server-side utility classes (database beans, shopping carts, and so on). Static web resources (HTML, image, and sound files, and so on) Client-side classes (applets and utility classes) A WAR has a specific hierarchical directory structure. The top-level directory of a WAR is the document root of the application. The document root is where JSP pages, client-side classes and archives, and static web resources are stored.
(源)
所以。war是一个。jar,但它包含web应用程序组件,并根据特定的结构进行布局。.war被设计为部署到web应用服务器(如Tomcat或Jetty)或Java EE服务器(如JBoss或Glassfish)。
.jar和.war都是压缩的归档文件。 两者都可以有可选的META-INF/MANIFEST。MF清单文件,其中包含信息信息,如版本控制,以及将执行它的JVM的类路径和主类等指导性属性。
.war文件- Web应用程序归档文件打算在“Servlet容器”中执行,可能包括其他jar文件(在Web - inf /lib目录)编译类(在Web - inf /classes (Servlet也在那里)).jsp文件图像,文件等。 所有的WAR内容,以便创建一个自包含的模块。
战争——
分发基于java的web应用程序。WAR具有相同的文件 结构作为JAR文件,这是一个单独的压缩文件 包含多个捆绑在其中的文件。
Jar——
jar文件包含库、资源和附件文件 比如属性文件。 WAR文件用于组合jsp、servlet、Java类文件和XML 文件,javascript库,JAR库,静态网页等等 运行应用程序所需的其他资源。
JAR文件允许打包多个文件,以便将其用作库、插件或任何类型的应用程序。另一方面,WAR文件仅用于web应用程序。
可以使用任何所需的结构创建JAR。相反,WAR具有预定义的WEB-INF和META-INF目录结构。
JAR文件允许Java运行时环境(JRE)在一个请求中部署整个应用程序,包括类和相关资源。另一方面,WAR文件允许轻松地测试和部署web应用程序。
JAR文件扩展名为. JAR,是用JAR命令从命令提示符创建的(就像执行javac命令一样)。一般来说,JAR文件包含与Java相关的资源,如库、类等。JAR文件与winzip文件类似,只是JAR文件与平台无关。
WAR文件只是一个JAR文件,但只包含与Web相关的Java文件,如servlet、JSP、HTML。
要执行WAR文件,需要Web服务器或Web容器,例如Tomcat或Weblogic或Websphere。要执行JAR文件,简单的JDK就足够了。
此外,使用嵌入式容器,你可以直接运行一个JAR文件,就像用spring boot运行你的java应用程序一样,设置一个web服务器。但是,对于WAR文件,您需要首先设置一个web服务器,例如Tomcat。
推荐文章
- 指定的子节点已经有一个父节点。你必须先在子对象的父对象上调用removeView() (Android)
- 对于一个布尔字段,它的getter/setter的命名约定是什么?
- 如何获得当前屏幕方向?
- 如何在Android中渲染PDF文件
- 如何计算一个元素在列表中出现的次数
- c++中类似于java的instanceof
- 我如何解决错误“minCompileSdk(31)指定在一个依赖的AAR元数据”在本机Java或Kotlin?
- 如何POST表单数据与Spring RestTemplate?
- Mockito中检测到未完成的存根
- 我应该如何复制字符串在Java?
- “while(true)”循环有那么糟糕吗?
- 这个方法签名中的省略号(…)是干什么用的?
- Java:如何测试调用System.exit()的方法?
- 带有返回类型的Java方法在没有返回语句的情况下编译
- Java“此语言级别不支持lambda表达式”