import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Objects;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
/**
* 判斷當前jar包是否存在於某個類名
* @param path jar包路徑
* @param driver 類名
* @return
*/
private static Boolean getClazzName(String path,String driver) {
List<String> list = new ArrayList<String>();
try {
JarFile jarFile = new JarFile(path);
Enumeration enu = jarFile.entries();
while (enu.hasMoreElements()) {
JarEntry jarEntry = (JarEntry) enu.nextElement();
String name = jarEntry.getName();
// 過濾出 class 文件
if (name.endsWith(".class") && name.indexOf("$") == -1 ) {
// 重新格式化文件名
name = name.substring(0, name.indexOf(".class"));
name = name.replaceAll("/", ".");
// System.out.println(name);
list.add(name);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return list.stream().anyMatch(l -> Objects.equals(l, driver));
}