java如何查看包中的类_java – 如何获取包中的所有类名?

这是我开发的一个定制解决方案来查找包的所有类:

public class ClassFinder {

private static final char PKG_SEPARATOR = '.';

private static final char DIR_SEPARATOR = '/';

private static final String CLASS_FILE_SUFFIX = ".class";

private static final String BAD_PACKAGE_ERROR = "Unable to get resources from path '%s'. Are you sure the package '%s' exists?";

public static List> find(String scannedPackage) {

String scannedPath = scannedPackage.replace(PKG_SEPARATOR, DIR_SEPARATOR);

URL scannedUrl = Thread.currentThread().getContextClassLoader().getResource(scannedPath);

if (scannedUrl == null) {

throw new IllegalArgumentException(String.format(BAD_PACKAGE_ERROR, scannedPath, scannedPackage));

}

File scannedDir = new File(scannedUrl.getFile());

List> classes = new ArrayList>();

for (File file : scannedDir.listFiles()) {

classes.addAll(find(file, scannedPackage));

}

return classes;

}

private static List> find(File file, String scannedPackage) {

List> classes = new ArrayList>();

String resource = scannedPackage + PKG_SEPARATOR + file.getName();

if (file.isDirectory()) {

for (File child : file.listFiles()) {

classes.addAll(find(child, resource));

}

} else if (resource.endsWith(CLASS_FILE_SUFFIX)) {

int endIndex = resource.length() - CLASS_FILE_SUFFIX.length();

String className = resource.substring(0, endIndex);

try {

classes.add(Class.forName(className));

} catch (ClassNotFoundException ignore) {

}

}

return classes;

}

}

然后,只需使用:

List> classes = ClassFinder.find("com.package");

一个查找java的.class和.java的辅助编程工具,可以批量从jar包或文件夹中查找,支持通配符。此工具需机器上安装有JRE。双击运行。 使用说明: 1、输入要查找的类名。支持通配符*(代表任意多个字符)和?(代表一个字符)。选项: 区分大小写:类名区分大小写,即查找与输入的类名大小写完全一致的。 完整类名: 输入的类名包含"包内路径"。路径不必完全,如java.util.scanner或util.scanner都可以。路径中也可以有通配符。注意当输入的类名包含路径时一定要选中此项,否则会提示输入的类名不正确。 同时查找源文件:在查找.class时同时查找此的.java文件。 2、在包中查找。 添加按钮:弹出"选择包"对话框,从中选择jar包,可多选。 导入按钮:自动从文件夹批量导入包。弹出"选择文件夹"对话框,从中选择文件夹,可多选。如果要同时查找子文件夹,记得勾选"包括子文件夹中的包"。 3、在文件夹中查找。用于查找文件夹中的.class和.java。 4、"移除"按钮:移除包列表(或文件夹列表)中选中的包(或文件夹)。 5、"清空"按钮:清空包列表(或文件夹列表)。 6、"开始"按钮:开始查找。查找时窗口下部会显示当前正在处理的包(或文件夹)。此处显示"查找完成"后,请点击"查找结果"标签查看结果。 7、查找结果:当从包中查找时,显示找到的全路径路类名和全路径包名。当从文件夹中查找时,显示找到的类名和文件夹。窗口下部显示共找结果数,如果为0则表示没找到。右下角的"显示错误项"是显示发生错误的包或文件夹,例如权限问题不能正常访问等,默认未勾选。 8、附加功能:用于列出一个包中的.class和.java。先点浏览按钮选中一个jar包再点开始按钮即可。 9、各个标签中均可以点击表头进行排序。 10、复制查找结果到粘贴板:选中一行或多行(配合SHIFT、CTRL键多选),右键弹出复制菜单,可以复制选中行到粘贴板。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值