JAR是什么
- JAR就是Java ARchive。这种文件是个pkzip格式的文件,它能让你把一组类文件包装起来,所以交付时只需要一个JAR文件。
- JAR可以是可执行的。
为何要生成JAR
把你的程序塑造成可部署给外人使用的形式。
如何生成
创建可执行的JAR
- 从源文件生成类(class)文件;
// 将源代码与class文件分离
cd MyProject/source
javac -d ../classes MyApp.java
- 确定所有的类文件都在
classes
目录下; - 创建
manifest.txt
来描述哪个类带有main()方法;
// MyApp后面没有.class后缀
Main-Class: MyApp
- 执行jar工具来创建带有所有类以及manifest的JAR文件;
cd MiniProject/classes
jar -cvmf manifest.txt app1.jar *.class
- 执行JAR
java -jar app1.jar
上面的方法会有目录的问题,当有子目录时,是不会深入子目录来只做JAR的,这里需要引入package
有package的生成规则
- 在coding的时候,把类放在与包结构相应的目录结构下
- 编译
cd MyProject/source
javac -d ../classes com/headfirstjava/*.java
- 执行程序
cd MyProject/classes
java com.headfirstjava.PackageExercise
- 创建
manifest.txt
来描述哪个类带有main()
Main-Class: com.headfirstjava.PackageExercise
- 生成JAR
cd MyProject/classes
// 只要指定com目录就可以
jar -cvmf manifest.txt PackEx.jar com
解压JAR
// list jar的内容
jar -tf PackEx.jar
// extract the contents
jar -xf packEx.jar