jar命令是用来将java编译产生的.class文件打包成jar包的工具。
Jar包可以方便地对外发布,甚至就像exe一样易于使用。
这里以一个工具类JarParser为例,这个示例程序是用来遍历Jar包中的类的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
import java.util.Enumeration; import java.util.jar.JarEntry; import java.util.jar.JarFile;
public class JarParser {
public static void main(String args[]) { if(args.length<1) System.exit(0); String jar = args[0]; try { JarFile jarFile = new JarFile(jar); Enumeration enu = jarFile.entries(); while (enu.hasMoreElements()) { JarEntry jarEntry = (JarEntry) enu.nextElement(); String name = jarEntry.getName(); if (name.endsWith(".class")) System.out.println("Class: "+name.replace('/','.')); } } catch (Exception e) { e.printStackTrace(); } } }
|
使用javac命令编译这个Java文件:javac JarParser.java
接着创建一个文本文件,这个文件用来作为jar包中的MANIFEST.MF描述文件。
1
| echo Main-Class: JarParser > test.mf
|
这句Main-Class的作用是指明Jar包的入口类。
最后使用jar命令打包:
1
| jar cvfm JarParser.jar test.mf JarParser.class
|
生成的jar包使用java -jar命令运行。