为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive(JAR) File,是的,就是java存档文件。这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部署)。其中,为J2EE应用程序创建的Jar文件是ear文件(企业JAR文件)。
那我们的输入(要压缩的东西)主要是class文件,还有辅助的资源(这其中可能有图片,jsp文件,html文件等等)。Jar技术在jdk1.1版本中就已存在,在1.2中又有了增强。接下来说说jar的好处吧,这是官方的描述:安全,快速下载,压缩,猎取包,版本化包,可携。
说了这么多,我们现在开始实施:先打开命令提示符,输入jar Chelp,然后回车(如果你盘上已经安装了jdk),看到什么?没错,就是jar打包命令的帮助文档。这里就不详述了,自己去看。
举例:将smartupload组件重新打包。这里有一个class库,相应目录结构为:
|-common
|-util
|-servlet
|-ServletUpload.class
|-smart
|-File.class
|-Files.class
|-Request.class
|-SmartUpload.class
|-SmartUploadException.class
注意,这个目录结构很有用,它代表了一个包的结构(当然*.class文件内部也要把这个路径用package语句指明),比如调用SmartUpload.class时,实际引用路径是:import common.util.smart.SmartUpload;如果将*.class文件全部放在根目录下直接打包(eg: jar cvf smartupload.jar *.class),jar会默认建立一个default package,这个是我们不希望看到的。
cmd进入common文件夹所在目录下,输入命令:jar cvf smartupload.jar common --> 打包成功。