手动编译打包运行java工程
|---Manifest.mf
|---test
| |-- com
| | |---A.java
| |-- cn
| |---B.java
com.A
package com;
import cn.B;
public class A {
public static void main(String[] args) {
B b = new B();
b.bbb();
}
}
cn.B
package cn;
public class B {
public void bbb(){
System.out.println("this is B!!!");
}
}
myManifest.mf
Manifest-Version: 1.0
Class-Path: .
Main-Class: com.A
编译
F:\test
λ javac com/A.java cn/B.java
打包
F:\
λ jar cvfm test.jar test/myMANIFEST.MF -C test/ .
已添加清单
正在添加: cn/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: cn/B.class(输入 = 385) (输出 = 276)(压缩了 28%)
正在添加: cn/B.java(输入 = 100) (输出 = 91)(压缩了 9%)
正在添加: com/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: com/A.class(输入 = 302) (输出 = 235)(压缩了 22%)
正在添加: com/A.java(输入 = 128) (输出 = 110)(压缩了 14%)
正在添加: myMANIFEST.MF(输入 = 59) (输出 = 58)(压缩了 1%)
运行
F:\
λ java -jar test.jar
this is B!!!
注意:虽然jar可以用winrar解压,但是不能编译好java文件,写好清单文件后,使用winrar压缩修改后缀名方式打包整改工程。
合并多个Jar包
jar -xvf 1.jar
jar -xvf 2.jar
jar -xvf 3.jar
del *.jar
jar -cvfm all.jar