Java与jar之间的区别

hel*_*hod 431 java jar war

a .jar.war文件有什么区别?它只是文件扩展名还是还有更多内容?

aio*_*obe 357

来自Java技巧:耳罐和战争文件之间的区别:

这些文件只是使用java jar工具的压缩文件.这些文件是为不同目的而创建的.以下是这些文件的说明:

  • .jar文件: .jar文件包含库,资源和附件文件,如属性文件.

  • .war文件: war文件包含可以部署在任何servlet/jsp容器上的Web应用程序..war文件包含开发Web应用程序所需的jsp,html,javascript和其他文件.


官方Sun/Oracle说明:


维基百科文章:

  • 我怀疑是jsp和其他Web应用程序文件为什么不能在jar文件中. (10认同)
  • @EmmanuelAngelo.R 他们可以 - jar 文件只是 zip 文件。它是否会做任何有用的事情是另一回事,这取决于您想要使用 jar 文件的代码。作为一个有趣的例子,Jenkins 持续集成服务器作为 WAR 文件分发,可以使用“java -jar”运行。有关详细信息,请参阅 https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins。 (2认同)

T.J*_*der 71

根据某些文件的位置,.war文件具有特定的结构.除此之外,是的,它只是一个.jar.


jus*_*tkt 36

您可以在名为Web应用程序归档(WAR)的程序包中将Web组件添加到J2EE应用程序,该程序包类似于用于Java类库的程序包.WAR通常包含除Web组件之外的其他资源,包括:

  • 服务器端实用程序类(数据库bean,购物车等).
  • 静态Web资源(HTML,图像和声音文件等)
  • 客户端类(applet和实用程序类)

WAR具有特定的分层目录结构.WAR的顶级目录是应用程序的文档根目录.文档根目录是存储JSP页面,客户端类和归档以及静态Web资源的位置.

(来源)

所以.war是一个.jar,但它包含Web应用程序组件,并根据特定结构进行布局..war旨在部署到Web应用程序服务器(如Tomcat或Jetty)或Java EE服务器(如JBoss或Glassfish).


Job*_*ews 29

WAR代表Web应用程序ARchive

JAR代表Java ARchive

在此输入图像描述

  • EAR 是企业应用程序存档? (8认同)

Jus*_*ner 14

一个.war文件是一个Web应用程序归档其中一个应用程序服务器中运行,而一个.jar是运行在用户的计算机上的桌面应用程序的Java应用程序归档.

  • 第二个陈述不一定正确.jar也可以启动嵌入式Web服务器,例如使用Spring Boot. (11认同)
  • 即使这种说法也不完全正确.jar也可以只是其他应用程序使用的代码库.换句话说,它甚至可能不包含运行的主类. (4认同)

Vin*_*nie 11

war文件是一个特殊的jar文件,用于打包Web应用程序,以便在应用程序服务器上轻松部署它.war文件的内容必须遵循定义的结构.


nya*_*nev 8

war 和 jar 是 java 文件的存档。war 是网络存档,它们在网络服务器上运行。jar 是 java 档案。


小智 8

.jar和.war都是压缩存档文件.两者都可以有可选的META-INF/MANIFEST.MF清单文件,其中包含版本信息等信息性信息,以及用于执行它的JVM的类路径和主类的指令属性.

.war文件 - Web应用程序存档旨在在'Servlet容器'内执行,并且可能包含其他jar文件(在WEB-INF/lib目录下)编译的类(在WEB-INF/classes(servlet也在那里)).jsp文件图像,文件等.所有WAR内容都是为了创建一个独立的模块.


小智 7

JAR 文件扩展名为 .jar,是在命令提示符下使用 jar 命令创建的(就像执行 javac 命令一样)。一般来说,JAR 文件包含 Java 相关资源,如库、类等。JAR 文件类似于 winzip 文件,只是 Jar 文件与平台无关。

WAR 文件只是一个 JAR 文件,但仅包含与 Web 相关的 Java 文件,如 Servlet、JSP、HTML。

要执行 WAR 文件,需要 Web 服务器或 Web 容器,例如 Tomcat 或 Weblogic 或 Websphere。要执行 JAR 文件,简单的 JDK 就足够了。


fmu*_*car 5

基本上都是压缩档案。war 用于具有特定目录结构的 Web 应用程序。