.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。
推荐文章
- 到底是什么导致了堆栈溢出错误?
- 为什么Android工作室说“等待调试器”如果我不调试?
- Java:路径vs文件
- ExecutorService,如何等待所有任务完成
- Maven依赖Servlet 3.0 API?
- 如何在IntelliJ IDEA中添加目录到应用程序运行概要文件中的类路径?
- getter和setter是糟糕的设计吗?相互矛盾的建议
- Android room persistent: AppDatabase_Impl不存在
- Java的String[]在Kotlin中等价于什么?
- Intellij IDEA上的System.out.println()快捷方式
- 使用Spring RestTemplate获取JSON对象列表
- Spring JPA选择特定的列
- URLEncoder不能翻译空格字符
- Java中的super()
- 如何转换JSON字符串映射<字符串,字符串>与杰克逊JSON