Java的JAR文件

JAR文件的全称是Java Archive File,意思就是java档案文件,一般jar文件是一种压缩的文件,与常见的ZIP压缩文件兼容,一般也被称为JAR包。JAR文件和zip文件的区别就在于jar文件默认包含一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件是在JAR文件时由自动建立的。java

1.当开发一个应用程序后,这个应用程序包含了不少类,若是须要把这个应用程序提供给别人使用,一般将这些类文件打包成一个JAR文件,把这个jar文件提供给别人使用。只要别人在系统的CLASSPATH环境变量中添加这个JAR文件,则java虚拟机就能够自动在内存中解压这个JAR包,把这个JAR文件当成一个路径,在这路径中查找所须要的类或包对应的路径结构。web

2.JAR文件的好处,安全,可以对JAR文件进行数字签名,只让可以识别数字签名的用户使用里面的东西;加快下载速度,再网络使用Applet时,若是存在多个文件而不打包,为了可以把每一个文件都下载到客户端,须要把每一个文件单独创建一个HTTP链接,这是很是耗时的工做。将这些文件压缩成一个jar包,只须要创建一次HTTP链接就可以下载全部的文件。压缩,使文件变现小,JAR压缩机制和ZIP彻底相同。包封装,可以让JAR包里面的文件依赖统一版本的类文件。可移植,JAR包做为内嵌在java平台内部处理的标准,可以在各类平台上直接使用。安全

3. jar 命令详解 

  jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录 中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行须要用到 JDK 安装目录下 lib 目录中 的 tools.jar 文件。不过咱们除了安装 JDK 什么也不须要作,由于 SUM 已经帮咱们作好了。咱们甚至不须要将 tools.jar 放 到 CLASSPATH 中。 

  使用不带任何的 jar 命令咱们能够看到 jar 命令的用法以下: 

  jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 

  其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示: 

  -c 建立新的 JAR 文件包 
  -t 列出 JAR 文件包的内容列表 
  -x 展开 JAR 文件包的指定文件或者全部文件 
  -u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中) 

  [vfm0M] 中的选项能够任选,也能够不选,它们是 jar 命令的选项参数 

  -v 生成详细报告并打印到标准输出 
  -f 指定 JAR 文件名,一般这个参数是必须的 
  -m 指定须要包含的 MANIFEST 清单文件 
  -0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快 
  -M 不产生全部项的清单(MANIFEST〕文件,此参数会忽略 -m 参数 

  [jar-文件] 即须要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数 
  [manifest-文件] 即 MANIFEST 清单文件,它是 -m 参数的附属参数 

  [-C 目录] 表示转到指定目录下去执行这个 jar 命令的操做。它至关于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在建立和更新 JAR 文件包的时候可用。 
  文件名 ... 指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。若是指定了目录,那么 jar 命令打包的时候会自动把该目录中的全部文件和子目录打入包中。网络

4.建立可执行的JAR包,当一个程序开发成功通常经过三种方式来发布,利用平台相关的编译器将整个应用编译成平台可执行的文件,这一般使用第三方的编译器,并且编译的文件丧失跨平台型;为应用编辑一个批处理文件;将一个应用程序制做成可执行的jar文件包,经过jar包来发布应用。ip

5.关于JAR包的技巧,JAR文件实际就是ZIP文件,因此能够用一些常看法压缩JAR文件。除此以外 java还能够生成两种压缩包,WAR包和EAR文件,WAR文件是Web Archive File,而EAP文件就是Enterprise Arichve File,它对应于一个企业应用文挡(一般由web应用和ejb两部分组成)。内存

相关文章
相关标签/搜索