JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类。这些细节就不用管它了。让我们看看它怎么使用吧:
一.jar命令选项:
jar命令格式:jar{ctxuf}[vme0Mi][-C目录]文件名...其中{ctxu}这四个选项必须选其一。[vfme0Mi]是可选选项,文件名也是必须的。-c创建一个jar包-t显示jar中的内容列表-x解压jar包-u添加文件到jar包中-f指定jar包的文件名-v生成详细的报造,并输出至标准设备-m指定manifest.mf文件.(manifest.mf文件中可以对jar包及其中的内容作一些一设置)-0产生jar包时不对其中的内容进行压缩处理-M不产生所有文件的清单文件(Manifest.mf)。这个参数与忽略掉-m参数的设置-i为指定的jar文件创建索引文件-C表示转到相应的目录下执行jar命令,相当于cd到那个目录,然后不带-C执行jar命令二.jar使用范例:
三.Manifest.mf文件编写规则:
manifest.mf的编写一定要注意一些细节,它是很苛刻的,我在此也载过不少跟头,谁让它这么小气呢,没办法,所以专门给大家列出来。(1)不能有空行和空格的地方第一行不可以是空行(第一行的行前不可以有空行),行与行之间不能有空行,第行的行尾不可以有空格(2)一定要有空行的地方最后一行得是空行(在输完你的内容后加一个回车就OK)(3)一定有空格的地方key:value在分号后面一定要写写一个空格
四.怎样使用jar包中的类
还是写个小例子吧,这样直观!publicfinalclassPerson{publicstaticintage(){return30;}}->javacPerson.java->jarcvfperson.jarPerson.class将上面的文件打成一个jar包再写一个类对其进行调用:publicclassMyAge{publicstaticvoidgetAge(){System.out.println(Person.age());}}->javacMyAge.java->java-classpathperson.jarMyAge************调试一下这个程序*******************
五.创建可执行jar包
六.扩展自己的类
在JDK的安装目录\jre\lib\ext目录下,SUN为大家为我们扩展自己类的提供了方便,大家可以将自己的类文件打成.jar包放在此目录下,它由ExtClassLoader类装器负责进行装载,ExtClassLoader类装器是AppClassLoader类装载器的父装载器,AppClassLoader主要负责加载CLASSPATH路径下的文件,而在java中采用的又是委托父装载器的机制,所以此目录下存放的jar中的类文件不做任何的设置,类装载器就可以找到正常的加载,是不是很方便啊,呵...如果你的.jar是给applet小应用程序看的,可以在打成jar包之前,在其manifest.mf加入下面两行。Class-Path:FirstApplet.jarClass-path:SecondApplet.jarMain-Class:MyApplet注意:Class-path可以设置多项,直接写jar包名既可。Main-Class主要当jar中有多个.class类文件时,java并不知道那个才是主类,所以要指定,如果jar包中只有一个类当然可以不指定。Java调用类的顺序:java\lib\ext中的类--->Manifest.mf中指定的类-->当前目录中的类-->setCLASSPATH中指定的类。