tar包和jar包和war包的区别?
一、tar包和jar包和war包的区别
Tar
tar是*nix下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx.tar.gz,就表示这个tar包是压缩的,并且使用的压缩算法是GNU ZIP,而xxxx.tar.bz2就表示这个包使用了bzip2算法进行压缩,当然这样的命名只是一种惯例,并非强制。简单地说,tar就仅是打包。
Jar
即Java Archive,Java的包,Java编译好之后生成class文件,但如果直接发布这些class文件的话会很不方便,所以就把许多的class文件打包成一个jar,jar中除了class文件还可以包括一些资源和配置文件,通常一个jar包就是一个java程序或者一个java库。是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为 J2EE 应用程序创建的jar文件是 EAR 文件(企业 jar文件),jar文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 jar中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 jar。
War
Web application Archive,与jar基本相同,但它通常表示这是一个Java的Web应用程序的包,tomcat这种Servlet容器会认出war包并自动部署。一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。便于我们部署工程,直接放到tomcat的webapps目录下,直接启动tomcat即可。同时,可以使用WinRAR查看war包,直接将后缀.war改成.rar。
延伸阅读:
二、war文件
扩展名为.War,Web Application Archive,包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。 war包是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。war包是Sun提出的一种web应用程序格式,与jar类似,是很多文件的压缩包。war包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。
以上就是关于tar包和jar包和war包的区别的内容希望对大家有帮助。

相关推荐HOT
更多>>
Wolfram语言所谓的 Knowledge-based language 与其他编程语言有什么区别?
一、Wolfram语言所谓的 Knowledge-based language 与其他编程语言的区别Wolfram语言所谓的 Knowledge-based language 与其他编程语言的区别是它详情>>
2023-10-11 22:45:40
嵌入式工控机与普通工控机有哪些区别?
一、嵌入式工控机与普通工控机的区别嵌入式工控机和普通工控机都是用于工业控制和自动化的设备,但两者之间存在以下区别:1、外观和尺寸不同嵌...详情>>
2023-10-11 21:06:52
JavaScript中null和undefined的区别?
一、JavaScript中null和undefined的区别1、null是js的关键字,表示空值;undefined不是js的关键字,它是一个全局变量2、null是Object的一个特殊...详情>>
2023-10-11 20:46:50
SQL数据库与ACESS数据库有哪些区别?
一、SQL数据库与ACESS数据库的区别1、类型不同SQL数据库通常是关系型数据库,而Access数据库是一种桌面数据库。2、应用范围不同SQL数据库适用于...详情>>
2023-10-11 19:59:44热门推荐
Wolfram语言所谓的 Knowledge-based language 与其他编程语言有什么区别?
沸VB和Java有什么区别?
热SQL中的 in 与 not in 有什么区别?
热嵌入式工控机与普通工控机有哪些区别?
新JavaScript中null和undefined的区别?
类拦截和方法拦截有哪些区别?
SQL数据库与ACESS数据库有哪些区别?
开启飞行模式断网和通过直接关闭wifi来断网有哪些区别?
ips和led屏幕区别?
开发塞班软件跟开发苹果软件有哪些区别?
tar包和jar包和war包的区别?
ibatis和mybatis有什么区别?
java的jdk和jre有什么区别?
C#和JAVA有哪些区别?
技术干货






