adding: pktest/(in = 0) (out= 0)(stored 0%)
adding: pktest/PackageSecond.class(in = 659) (out= 395)(deflated 40%)
adding: pktest/subpk/(in = 0) (out= 0)(stored 0%)
adding: pktest/subpk/PackageSub.class(in = 744) (out= 454)(deflated 38%)
adding: pktest/PackageTest.class(in = 1041) (out= 602)(deflated 42%)
[classes]$ java -jar mypackage.jar
Value of PackageTest is This is a Test Package
Value of PackageSecond is I am in PackageTest
Value of PackageSecond is I am in subpackage.
Value of PackageSub is I am in PackageTest
好了, 成功了, 这样就做好了一个可以直接执行的 .jar 文件. 大家可以自己试一
试
做一个以 Main 为主程序的可执行的 jar.
小结:
这篇文章中, 我们讨论了 java 中的 class path, package, jar 等基本但比较
重要的东西, 主要是 class path. 并不是简单的一份 CLASSPATH 的完全功略, 而是
试图让读者明白其原理, 自己思考, 自己动手. 其实大多数东西都在 sun 的 java doc
中都有, 我只不过结合例子稍微谈了一下, 希望能有所帮助. 由于条件所限, 只测试了
jdk1.2.2 在 98 及 linux 的情况, 其他版本的 jdk 和平台请大家自己测试, 错误在
所难免, 还请指正.
下面是一些需要注意的问题:
1, 如果类路径中需要用到 .jar 文件, 必须把 jar 文件的文件名放入类路径, 而不是
其所在的目录.
2, 在任何时候, 类名必须带有完全的包名,
3, "." 当前目录最好在你的类路径中.
下面是一些常见的编译和运行的模式.
4. To compile HelloWorld.java app in the default package in C:\MyDir, use
CD \MyDir
C:\jdk1.3\bin\Javac.exe -classpath . HelloWorld.java
5. To run a HelloWorld.class app, in the default package in C:\MyDir, use
CD \MyDir
C:\jdk1.3\bin\Java.exe -classpath . HelloWorld
6. To run a HelloWorld.class app, in the default package in a jar in C:\MyDi
r, uuse
CD \MyDir
C:\jdk1.3\bin\Java.exe -classpath HelloWorld.jar HelloWorld
7. To compile a HelloWorld.java app in C:\MyPackage, in package MyPackage, u se
CD \
C:\jdk1.3\bin\Javac.exe -classpath . MyPackage\HelloWorld.java
8. To run a HelloWorld.class app in C:\MyPackage, in package MyPackage, use
CD \
C:\jdk1.3\bin\Java.exe -classpath . MyPackage.HelloWorld
9. To run a HelloWorld.class app in C:\MyPackage, in a jar in package MyPack
age,, use
CD \MyDir
C:\jdk1.3\bin\Java.exe -classpath HelloWorld.jar MyPackage.Hello
Worl
(注: default package 指的是在程序中不指定任何包).
最后一个小小的建议, 把 sun 的 jdk tools documentation 好好地看一看,
把 jdk 的那些工具 java javac javadoc jar javap jdb......好好用一用, 会
有好处的. The Simplest Is The Best.

