我编译从文字类得到的ClassLoader .class文件在Java中
public class Foo{
public Foo(){
}
}
通过org.abstractmeta.toolbox.compilation.compiler.JavaSourceCompile
,我想知道有没有什么办法让编译后的字节码(.class文件)从类加载器或任何任何对象
我编译从文字类得到的ClassLoader .class文件在Java中
public class Foo{
public Foo(){
}
}
通过org.abstractmeta.toolbox.compilation.compiler.JavaSourceCompile
,我想知道有没有什么办法让编译后的字节码(.class文件)从类加载器或任何任何对象
你需要编写自定义类加载器重载的findClass方法
public Class findClass(String name) {
byte[] b = ... // get the bytes from wherever they are generated
return defineClass(name, b, 0, b.length);
}
感谢mohsin正是我nedd ... //因为我的课不是.class文件我有一个类存储在字符串和我编译的-runtime-现在我nedd字节码是由compilation.toolbox生成的,它给了我一个java.lang.classLoader来加载一个类 –
String clazz =“public class foo {pubic Foo(){}} “ –
当您使用JavaSourceCompiler
时,必须为compile
方法的两个版本提供CompilationUnit
。在CompilationUnit
上调用getOutputClassDirectory()
以获取包含所有编译的.class
文件的目录。
我尝试,但这是类路径中的地址,并没有.class文件 –
File m = compilationUnit.getOutputClassDirectory(); if(m.exists()) System.out.println(”ok“); else System.out.println(“ops”);结果是ops –
您在运行'compile'之前还是之后尝试过? – chrylis
Google无法找到您正在使用的编译器,并且'abstractmeta.com'似乎无法正常工作。请发布一个链接到编译器的文档或网站。 – chrylis
嗨chrylis所有https://code.google.com/p/compilation-toolbox/ enjory它:( –