使用JavaCompiler API加载预编译的类
问题描述:
我正在使用内存Java编译器,它可以实现Java源代码和产品Class
对象。使用JavaCompiler API加载预编译的类
现在我通过一个Cache来增强编译器的性能,缓存编译器为类的源代码生成的字节码。
由于这样的结果,我不能再编译依赖于从Cache中的一类,即类,如果类一个(取决于乙)和乙被编译,他们都得到缓存。如果我再改一个,只有一个被重新编译,而我得到乙错误没有被发现:
cannot find symbol
symbol: class MyClass
我该如何解决这个问题?在编译过程中ClassLoader
或FileManager
是否负责解决JavaCompiler
遇到的依赖关系?
谢谢!
答
回答我的问题:
我把它通过扩展FileManager
的list()
方法返回我JavaFileObject
S的Iterable
工作。奇迹般有效!