1、使用JarFile类读取jar包MANIFEST.MF中的Main-Class,如果没有设置Main-Class则调用方法中指定执行函数
2、解压jar文件
3、设置classPath
4、利用反射取得class和method,并运行该method
如下代码Run.java将被打包到jar文件中,使用Maven构建并打包:
package com.chenzehe.runjar;
public class Run {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("run......");
if (args.length > 0) {
System.out.println("args: " + args[0]);
}
}
}
开始打包没有指定在MANIFEST.MF中指定Main-Class,下面运行时只能指定要运行的类。
RunJar.java为解析并执行该jar文件方法的类:
package com.chenzehe.runjar;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException;
import