(注意:下面文件都在f:/myjava中)
{
3个源文件:MyApp.java,MyLib.java,PrintSchool.java;
建文件夹org/Jie
其中MyLib和PrintSchool放在包org.Jie中(import org.Jie)
在cmd.exe中运行
javac -d org/Jie MyLib.java //在org/Jie/org/jie生成了MyLib.class文件,将该文件放到org/Jie下,再删掉org/Jie/org文件夹
copy MyLib.java org/Jie //将MyLib放到org/Jie中
javac -d org/Jie PrintSchool.java //类似MyLib操作
copy PrintSchool org/Jie
如上就生成了一个包org.Jie,可通过import 命令在其他类中引用它。
如测试例MyApp
在cmd.exe中运行
javac MyApp.java
java MyApp // 注意如果MyApp在其他(java)包中,例如在forall(自己定义的)包中 就要改为java forall.MyApp。如果类MyLib有main函数就可用命令 java org.Jie.MyLib运行MyLib了 ,当然该例的MyLi是不能运行。
就可运行MyApp了
}
{
关于运行jar压缩的文件:
仍然用上例,我将MyApp写入包forall中。因为我不知道默认包(放主类的)是什么,所以就自己建了一个包forall。
我感觉归并文件.jar都必须在包的前提下才能运行,因为jar文件里面的MANIFEST.MF文件需要知道主类的位置。因为MyApp引用了类MyLi和类PrintSchool,所以归并是要将org/Jie也要归并进去。
在cmd.exe中运行
jar -cvf MyApp.jar forall org/Jie //在myjava下生成了MyApp.jar文件
用winRAR打开MyApp.jar点进里面的 META-INF文件 将 MANIFEST.MF文件 改为 txt文件
点进去后,在文件尾添加如下语句
Main-Class: forall.MyApp
注意:冒号后只能且必须空一格后面是主类的位置,当然MyApp是主类名,并且结尾要有回车。
保存修改后将MANIFEST.TXT改回MANIFEST.MF文件。
就可以运行MyApp.jar文件了,用如下命令
java -jar MyApp.jar
得出结果
}