带有一堆源代码和类文件的目录是一团混乱的,我们可以将源代码与类文件分离创建出项目目录,下面有source和classes目录。把源代码(.java)存储在source目录下。在编译时动点手脚让输出(.class)产生在classes目录。
这里我创建了MyProject目录,将HelloWorld.java放在其下的source目录下。
打开cmd,进入source目录,输入javac -d ../classes HelloWorld.java
使用-d选项,你就可以指定编译过的程序要摆在哪里,而不会放到默认的同一个目录下。若要编译全部的.java文件:
javac -d ../classes *.java
*.java代表目前目录所有的源文件。
此时,classes目录下已经出现了HelloWorld.class
接下来就是把程序包进JAR。首先确定所有的类文件都在classes目录下。
我们需要在classes目录下创建manifest.txt来描述哪个类带有main()方法,该文件带有下面这一行:
Main-Class: HelloWorld
注意HelloWorld后面没有.class;在此行后面要有换行,否则有可能出错。
最后执行jar工具来创建带有所有类以及manifest的JAR文件:
在命令行输入jar -cvmf manifest.txt app1.jar *.class
注意还是在classes目录
运行试试:
java -jar app1.jar
运行时Java虚拟机会检查JAR的manifest寻找入口,如果没有就会发生运行期间异常。