从java中的ClassLoader获取.class文件

时间:2013-08-19 06:45:51

标签: java classloader bytecode

我从文本

编译了一个类
public class Foo{
    public Foo(){
    }
}

org.abstractmeta.toolbox.compilation.compiler.JavaSourceCompile

我想知道有没有办法从classloader或任何任何Object获取编译的字节码(.class文件)

2 个答案:

答案 0 :(得分:0)

你需要编写一个重载findClass方法的自定义类加载器

 public Class findClass(String name) {
     byte[] b = ... // get the bytes from wherever they are generated
     return defineClass(name, b, 0, b.length);
 }

答案 1 :(得分:0)

当您使用JavaSourceCompiler时,您必须为CompilationUnit方法的两个版本提供compile。在getOutputClassDirectory()上调用CompilationUnit以获取包含所有已编译的.class文件的目录。