扫描给定的包及其子包下面的所有类
来源:互联网 发布:淘宝怎么看店铺等级 编辑:程序博客网 时间:2024/06/03 13:15
// 调用getClasses(pkg);/** * 从上下文类加载器中扫描给定的包及其子包下面的所有类 * * @param packageName 包名 * @return * @throws ClassNotFoundException * @throws IOException */public static Class<?>[] getClasses(String packageName) throws ClassNotFoundException, IOException {ClassLoader classLoader = Thread.currentThread().getContextClassLoader();assert classLoader != null;String path = packageName.replace('.', '/');Enumeration<URL> resources = classLoader.getResources(path);List<File> dirs = new ArrayList<File>();while (resources.hasMoreElements()) {URL resource = resources.nextElement();dirs.add(new File(resource.getFile()));}ArrayList<Class<?>> classes = new ArrayList<Class<?>>();for (File directory : dirs) {classes.addAll(findClasses(directory, packageName));}return classes.toArray(new Class[classes.size()]);}/** * 用递归的方法查找给定的目录及其子目录中的所有的类 * * @param directory 给定的目录 * @param packageName 包名 * @return 包名 + 类名 * @throws ClassNotFoundException */public static List<Class<?>> findClasses(File directory, String packageName) throws ClassNotFoundException {List<Class<?>> classes = new ArrayList<Class<?>>();if (!directory.exists()) {return classes;}File[] files = directory.listFiles();for (File file : files) {if (file.isDirectory()) {assert !file.getName().contains(".");classes.addAll(findClasses(file, packageName + "." + file.getName()));} else if (file.getName().endsWith(".class")) {classes.add(Class.forName(packageName + '.' + file.getName().substring(0, file.getName().length() - 6)));}}return classes;}
如果目录找不到,请检查你的tomcat安装目录是否存在空格哦
————程序员的文件夹尽量不要出现空格或者中文字符
0 0
- 扫描给定的包及其子包下面的所有类
- 获取一个包和子包下面所有的类
- 如何加载包下面的所有类?
- java扫描包中的所有类的工具类
- java反编译(反编译正个包及其下的所有子包)
- Qt学习笔记,获取给定目录下面的所有文件名,及其path
- 统计一个目录下面所有jar包的大小
- java获取包或jar下面的所有class文件
- 怎么实现Spring里面的基于基包名下的所有类的扫描
- 如何使用java代码加载指定包下面的所有类
- 同一包下面类方法的调用
- android 扫描包下所有类
- 扫描某个包下所有的类,输出所有使用了特定注解的类的注解值
- Java 扫描包下所有类(包括jar包)
- 一个删除给定文件或目录及其所有子项的java方法
- C++读取某个文件夹下面的子文件夹及其所有文件
- 遍历文件夹下的文件夹和子文件,遍历文件夹删除文件夹及其下面的所有子文件
- 对于给定指定包名获取所有类
- Oracle Optimizer CBO RBO
- Java Comparable vs Comparator
- Java ExecutorService线程池中的小坑——关于线程池中抛出的异常处理
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1
- R -ggplot2 气泡图
- 扫描给定的包及其子包下面的所有类
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3
- java自带线程池和队列详细讲解
- javascript垃圾收集知识点概要(三)
- 应用程序的生命周期
- javascript垃圾收集知识点概要(二)
- JavaScript学习总结(七)Ajax和Http状态字
- ios如何设置私有变量
- ubuntu 14.04lts 安装mysql