import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
/**
* 从jar中读取所有的class类,包括包名
* @author lww
*
*/
public class JarFileTool {
public static List<String> getClassesFromJar(String path)
throws IOException {
List<String> classes = new ArrayList<String>();
JarFile jar = new JarFile(path);
Enumeration<JarEntry> files = jar.entries();
while (files.hasMoreElements()) {
JarEntry jarEntry = files.nextElement();
String name = jarEntry.getName();
if (name.matches("^.*class$"))
classes.add(name.replaceAll("/", "."));
}
return classes;
}
public static void main(String[] args) throws IOException {
String s1 = "d:/bcprov-jdk15on-149.jar";
for (String s : getClassesFromJar(s1))
System.out.println(s);
}
}
从jar中读取所有的class
最新推荐文章于 2021-06-20 12:55:35 发布
本文介绍了一个Java工具类,该类可以从指定的JAR文件中读取所有包含的Class文件,并将它们转换为带有包名的字符串形式。通过正则表达式筛选出以.class结尾的条目,然后替换路径分隔符来匹配Java类路径。
3433

被折叠的 条评论
为什么被折叠?



