2013-08-19 39 views
0

我编译从文字类得到的ClassLoader .class文件在Java中

public class Foo{ 
    public Foo(){ 
    } 
} 

通过org.abstractmeta.toolbox.compilation.compiler.JavaSourceCompile

,我想知道有没有什么办法让编译后的字节码(.class文件)从类加载器或任何任何对象

+1

Google无法找到您正在使用的编译器,并且'abstractmeta.com'似乎无法正常工作。请发布一个链接到编译器的文档或网站。 – chrylis

+0

嗨chrylis所有https://code.google.com/p/compilation-toolbox/ enjory它:( –

回答

0

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

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

感谢mohsin正是我nedd ... //因为我的课不是.class文件我有一个类存储在字符串和我编译的-runtime-现在我nedd字节码是由compilation.toolbox生成的,它给了我一个java.lang.classLoader来加载一个类 –

+0

String clazz =“public class foo {pubic Foo(){}} “ –

0

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

+0

我尝试,但这是类路径中的地址,并没有.class文件 –

+0

File m = compilationUnit.getOutputClassDirectory(); if(m.exists()) System.out.println(”ok“); else System.out.println(“ops”);结果是ops –

+0

您在运行'compile'之前还是之后尝试过? – chrylis

相关问题