1 新建两个均包括main的Java项目
在"com/xminyang/manifest"目录下,新建hello.java、sum.java,其内容分别如下:
package com.xminyang.manifest;
public class hello{
public static void main(String[] args) {
System.out.println("Hello, world.");
}
}
package com.xminyang.manifest;
public class sum{
public static void main(String[] args) {
if(args.length < 2){
System.out.println("Paras: num1 num2");
System.exit(-1);
}
final int num1 = Integer.valueOf(args[0]);
System.out.println("Num1: " + num1);
final int num2 = Integer.valueOf(args[1]);
System.out.println("Num2: " + num2);
final int sum = num1 + num2;
System.out.println(num1 + " + " + num2 + " = " + sum);
}
}
然后,再进行编译:
javac hello.java
javac sum.java
此时,目录及文件结构如下所示:
2 在当前目录,新建MANIFEST.MF文件
此时,该MANIFEST.MF文件的默认入口函数为hello类的main函数:
Mainfest-Version: 1.0
Main-Class: com.xminyang.manifest.hello
3 编译
jar -cvfm test.jar MANIFEST.MF com/xminyang/manifest/*.class
4 运行
4.1 运行默认类
java -jar test.jar
4.2 运行其他类
java -cp test.jar com.xminyang.manifest.sum 3 9
5 参考资料
[1] Multiple runnable classes inside JAR, how to run them?
[2] Importance of Main Manifest Attribute in a Self-Executing JAR
[3] Guide to Creating and Running a Jar File in Java