.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。
推荐文章
- 如何分割逗号分隔的字符串?
- Java字符串—查看字符串是否只包含数字而不包含字母
- Mockito.any()传递带有泛型的接口
- 在IntelliJ 10.5中运行测试时,出现“NoSuchMethodError: org.hamcrest. matcher . descripbemismatch”
- 使用String.split()和多个分隔符
- Java数组有最大大小吗?
- 在Android中将字符串转换为Uri
- 从JSON生成Java类?
- 为什么java.util.Set没有get(int index)?
- Swing和AWT的区别是什么?
- 为什么Java流是一次性的?
- 四舍五入BigDecimal *总是*有两位小数点后
- 设计模式:工厂vs工厂方法vs抽象工厂
- Java:检查enum是否包含给定的字符串?
- 它的意思是:序列化类没有声明一个静态的最终serialVersionUID字段?