Java:打包成jar包

准备Java文件 Hello.java

public class Hello{
   public static void main(String[] args) {
       System.out.println("Hello");
   }
}

打包过程

$ javac Hello.java                # 编译成.class 文件

$ jar -cvf hello.jar Hello.class  # 打包
已添加清单
正在添加: Hello.class(输入 = 401) (输出 = 275)(压缩了 31%)

$ jar -xvf hello.jar              # 解压
  已创建: META-INF/
  已解压: META-INF/MANIFEST.MF
  已解压: Hello.class

记事本打开文件 META-INF/MANIFEST.MF, 添加Main-Class: Hello

Manifest-Version: 1.0
Created-By: 1.8.0_172 (Oracle Corporation)
Main-Class: Hello

再次打包

$ jar -cvfm hello.jar META-INF/MANIFEST.MF Hello.class
已添加清单
正在添加: Hello.class(输入 = 401) (输出 = 275)(压缩了 31%)

# jar -cvfm hello.jar META-INF/MANIFEST.MF -C demo/ .
# 打包demo文件夹下所有文件,注意后面的'.'

$ java -jar hello.jar # 执行jar包
Hello

打包参数

-c  创建一个jar包
-t  显示jar中的内容列表
-x  解压jar包
-u  添加文件到jar包中
-f  指定jar包的文件名
-v  输出详细报告
-m  指定MANIFEST.MF文件
-0  生成jar包时不压缩内容
-M  不生成清单文件MANIFEST.MF
-i  为指定的jar文件创建索引文件
-C  可在相应的目录下执行命令

参考

java打jar包的几种方式详解

Java Jar包压缩、解压使用指南

上一篇:Linux:bc计算根号保留小数


下一篇:设计模式之观察者模式