Hi Cindy, thanks a lot for your help. We made a batch file to show the manifest file, make the jar file and run the jar file. Notice that I have made some changes in my file structure. I have adopted your suggestion in my file struture. So I have all the class files in D:\Javadevel\hipPocket\application\package01 directory. I create the Meta-Inf subfolder for manifest file.
And here is the result of the batch file. It looke like I am still missing something very simple here.
***************************************************************
> cd D:\JavaDevel\hipPocket\application
> BatchMain6.bat
D:\JavaDevel\hipPocket\application>BatchMain6.bat
D:\JavaDevel\hipPocket\application>rem this file is: d:\JavaDevel\hipPocket\application\BatchMain.bat
D:\JavaDevel\hipPocket\application>rem ----- ----- current working directory is ...application
D:\JavaDevel\hipPocket\application>rem ----- ----- locate the jar file in .
D:\JavaDevel\hipPocket\application>rem ----- ----- use: .\meta-inf\package01.startTwo.mf
D:\JavaDevel\hipPocket\application>rem -----show that the program works using the class files
D:\JavaDevel\hipPocket\application>C:\JBuilder4\jdk1.3\bin\java.exe -cp .\package01 Two
*******************WORKS Springfield
D:\JavaDevel\hipPocket\application>rem -----show the manifest file
D:\JavaDevel\hipPocket\application>type .\meta-inf\package01.startTwo.mf
Main-Class: package01.Two
D:\JavaDevel\hipPocket\application>rem -----build the archive file (jar) using .\meta-inf\package01.startTwo.mf
D:\JavaDevel\hipPocket\application>C:\JBuilder4\jdk1.3\bin\jar.exe cvfm .\Package01.jar .\meta-inf\package01.startTwo.mf package01\*.class
added manifest
adding: package01/One.class(in = 1437) (out= 760)(deflated 47%)
adding: package01/Two.class(in = 862) (out= 493)(deflated 42%)
D:\JavaDevel\hipPocket\application>rem -----show the contents of the jar file
D:\JavaDevel\hipPocket\application>C:\JBuilder4\jdk1.3\bin\jar.exe tf .\Package01.jar
META-INF/
META-INF/MANIFEST.MF
package01/One.class
package01/Two.class
D:\JavaDevel\hipPocket\application>rem -----two tries: run the main program using the jar file
D:\JavaDevel\hipPocket\application>C:\JBuilder4\jdk1.3\bin\java.exe -jar -cp . .\Package01.jar
java.lang.NoClassDefFoundError: package01/Two (wrong name: Two)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
Exception in thread "main"
D:\JavaDevel\hipPocket\application>C:\JBuilder4\jdk1.3\bin\java.exe -jar -cp .\package01 .\Package01.jar
java.lang.NoClassDefFoundError: package01/Two (wrong name: Two)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
Exception in thread "main"
Thanks for your help. I really appreciate it.
qionghua