1.文档性质的jar文件
可以将有包名的类的字节码文件压缩成一个jar文件,供其他源文件用import语句导入jar文件中的类。
以下结合具体的两个类给出生成的jar文件的步骤eg23中TestTwo类的包名分别是sohu. com和sun. hello. moon。
eg1:
java文件1
package sohu. com;
public class TestOne
public void fTestOne() {
System. out. println("I am a method in TestOne class");
}
java文件2
package sun. hello. moon;
public class TestTwo {
public void fTestTwo() {
System. out. println("I am a method in TestTwo class");
}
将上述TestOne. java和TestTwo . java分别保存到"C:\ch4>sohu\com"和"C:\ch4\sun\hello\moon"中。在命令行中进入“C:\ch4" 目录,然后如下编译两个源文件
C: \ch4> javac sohu\com\TestOne. java
C:\ch4> javac sun\hello\moon\TestTwo
以下讲解把TestOne. class和TestTwo. class压缩成一个 jar文件(erry. jar)的步骤。
1.编写清单文件
首先编写一.个清单文件qingdan. mf( Manifestfiles)。
文件qingdan. mf:
Manifest - Version: 1. 0
Class : sohu. com. TestOne sun. hello. moon. TestTwo
Created- By; 14
需要注意的是,在编写清单文件qingdan. mf时,在“Manifest-Verpion:"和“1.0”之间、“Class:"和类之间,以及“Created-By:"和“14”之间必须有且只有个空格)
将qingdan. mf保存到“C:\ch4”目录中(保存在包路径的父目录中),在保存时编码选择ANSI,保存类型选择“所有文件(*. *)”。
2. jar命令
为了在命令行中使用jar命令生成一个jar 文件,首先需要进人到“C:\ch4”目录,即进人包路径的父目录中,然后使用jar命令生成一一个名字为Jerry. jar的文件,如下所示:
C: ch4> jar cfm Jerry. jar qingdan. mf
sohucom\TestOne. class sun\hello\moon\TestTwo. class
也可如下使用jar命令:
C: ch4> jar cfm Jerry. jar qingdan. mf sohulcom\ * . class sun\hello\moon\ *. class
3. 使用jar文件中的类
在例子24中一个有包名(假设包名是tom. jafe)的Java源文件想使用例子23中生成的i文件中的类(想用imponn语句引人 jar文件中的源文件)
eg24中的源文件照包路径保存在“C:ch4\tom\jiaferi”中。
eg24:
package tom. jiafei;
import sohu.com.TestOne; // 引入jar文件中的类
import sun.hello. moon. TestTwO; //引入jar文件中的类
public class Example4_24 {
public void main (Strig args[]){
TestOne a = new TestOne();
a. fTestOne();
TestTwo b= new TestTwo();
b. fTestTwo();
}
}
4. 编译
将例子23给出的Jerry. jar也保存在“C:\ch4”中,然后eg24中源文件import语句引入了Jerry.jar类。在编译时使用参数 -cp.
给出所要使用的jar文件的路径位置。在命令进行中进入“C:\ch4”
如下编译例子24中的源文件:
C:\(ch4> javac - cp . ;Jerry. jar tom\jiafei\Example4_ 24. java
如果源文件的包名所对应路径的父目录和所使用的jar文件不在同一目承必须给出jar文件的绝对路径。例如.假设例子24中的源文件保存在“C:\100中,那么必须如下编译:
C:1000> javac - cpP ; c:\ch4\Jerry. jar tom\jiafei\Example4_ 24. java
如果-cp参数需要使用多个jar文件中的类,需将这些iar文件用分号分隔。
例如
Javac -cp.Jerry. jar; Cat. jar; Dog. jar 源文件包路径\源文件
5.运行主类。
在命令行中进人"C:\ch4".使用 -cp 参数加载程序需要的jar文件中的类如下运行程序:
C:\ch4> java一cp Jerry. jar; tom.jiafei. Example4_24
需要特别注意的是,-cp参数给出的jar文件Jerry. jar和主类名tom. jafei. Example4_24之间用分号分隔,而且分号和主类名之间必须至少留一个空格(分号前面不能有空施
果如图4.32所示。如果C参数需要使用多个iar文件中的类,需将这些a文件用分号分隔,
例如:
java- cp one. jar;two. jar;three. jar;主类
而且最后的jar文件后面的分号和主类之间必须至少留一个空格。
如果源文件没有包名,只要将该源文件和它所要使用的jar文件存放在相同的目录中,并使用-cp参数编译、运行即可。