???????? jar ???

???????°? .jar .zip ???????? .jar ???.

????1??  ????????????????? jar ????? java ?з??????? ??????????????????. ???????????????? .jar ??.

?????????????????????? Main.java ???????????? ???? pktest ???е???????????????? pktest ??????? .jar ???? ????? ???????????? pktest?е? .class ?????????????

????[classes]$ jar -cvf mypackage.jar pktest

?????????? mypackage.jar ????? ??????£? ???????????? Main.class ??classes ???£? ????? ???????????:

????[classes]$ java -cp mypackage.jar:. Main

??????????????.

????2??  ??????? jdk ??????????? ???????? .jar ????????????У?

????[/demo]$ java -jar aJar.jar

???????? ?????????????

????????????? jar ?????? jar ????????? ???????????? ???????????????????±??? ???? .jar ????? ??????? ?? .jar ??????? META-INF/MANIFEST.MF?????????? ??????У? Main-Class: xxxxx?? ?????????????? ???????????Main-Class?? ???? jar ???? ????????????? -m??-m  include manifest information from specified manifest file

?????????????е????? ???????????????????. ?????è????д?????.

[classes]$ cat myManifest
Manifest-Version: 1.0
Main-Class: pktest.PackageTest
Created-By: 1.2.2 (Sun Microsystems Inc.)
[classes]$ jar -cvfm mypackage.jar myManifest pktest
added manifest
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.3inJavac.exe -classpath . HelloWorld.java
5. To run a HelloWorld.class app?? in the default package in C:MyDir?? use
CD MyDir
C:jdk1.3inJava.exe -classpath . HelloWorld
6. To run a HelloWorld.class app?? in the default package in a jar in C:MyDir?? use  CD MyDir
C:jdk1.3inJava.exe -classpath HelloWorld.jar HelloWorld
7. To compile a HelloWorld.java app in C:MyPackage?? in package MyPackage?? use
CD
C:jdk1.3inJavac.exe -classpath . MyPackageHelloWorld.java
8. To run a HelloWorld.class app in C:MyPackage?? in package MyPackage?? use
CD
C:jdk1.3inJava.exe -classpath . MyPackage.HelloWorld
9. To run a HelloWorld.class app in C:MyPackage?? in a jar in package MyPackage???? use
CD MyDir
C:jdk1.3inJava.exe -classpath HelloWorld.jar MyPackage.HelloWorl

????(?: default package ???????????в?????κ??).    ?????СС????飬 ?? sun ?? jdk tools documentation ?ú?????????? jdk ????Щ???? java javac javadoc jar javap jdb......?ú??????? ???к????. The Simplest Is The Best.