查看帮助
jar --help
打包
// Hello.java
public class Hello{
public static void main(String[] args){
System.out.println("hello");
}
}
// Welcome.java
public class Welcome{
public static void main(String[] args){
System.out.println("welcome");
}
}
// javac *.java
// 生成2个字节码文件
// 打包,hello.jar:打包后的名称。Hello.class Welcome.class 要打包的文件
jar cvf hello.jar Hello.class Welcome.class
// 打包目录或指定文件
jar cvf hello.jar dir/
jar cvf hello.jar dir/*.class
清单文件
打包后会自动生成目录:META-INF以及子文件:MANIFEST.MF
// MANIFEST.MF内容
Manifest-Version: 1.0
Created-By: 1.8.0_301 (Oracle Corporation)
Main-Class
如果打包的是一个类库,不需要此属性,如果是可执行的jar文件,需要指定此属性
//指定jar文件中包含main方法的类,设置了该属性,就可以让一个jar文件变成可执行的。
Main-Class: xxx
指定Main-Class
// 打包时添加e参数
jar cvfe hello.jar Hello *.class
MANIFEST.MF内容
Manifest-Version: 1.0
Created-By: 1.8.0_301 (Oracle Corporation)
Main-Class: Hello
执行
java -jar hello.jar
// 输出:hello
使用自定义清单文件
// MANIFEST.MF
Manifest-Version: 1.0
Created-By: sun
Main-Class: Welcome
打包
jar cvfm hello.jar MANIFEST.MF *.class
java -jar hello.jar
//输出:welcome