你能用javassist来获取项目中的所有类吗?

时间:2013-05-02 01:14:03

标签: java javassist

有没有办法使用javassist在系统搜索路径中查找现有java类的列表?我知道你可以使用“.getDefault()”来返回系统的默认搜索路径,有没有办法列出这个搜索路径上的类而不知道类名。

1 个答案:

答案 0 :(得分:0)

如果您将代理/变换器附加到项目中,您可以轻松地记录或以某种方式保存加载到项目中的所有类

public class Agent {

    public static void premain(String agentArgs, Instrumentation inst) {
        inst.addTransformer(new ClassFileTransformer() {
            @Override
            public byte[] transform(ClassLoader classLoader, String s, 
                                     Class<?> aClass, ProtectionDomain protectionDomain, 
                                     byte[] bytes) throws IllegalClassFormatException {
                 // here you will see all the classes that are loaded into your project
                 // So just log its full name
                 System.out.println(s);
            }    
    }
}