使用JavaCompiler API加载预编译的类

时间:2017-10-22 03:41:10

标签: java caching compiler-construction classpath

我正在使用内存Java编译器,它使用Java源代码并生成可实例化的Class对象。

现在我通过缓存增强了编译器,缓存将编译器生成的字节代码缓存为类的源代码。

因此,我无法再编译依赖于Cache中的类的类,即,如果类 A (取决于 B )和 B 被编译,它们都被缓存。如果我随后更改 A ,则只会重新编译 A ,并且会收到有关 B 未找到的错误消息:

cannot find symbol
symbol: class MyClass

我该如何解决这个问题? ClassLoaderFileManager是否负责解决JavaCompiler在编译期间遇到的依赖关系?

谢谢!

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

我通过扩展list()的{​​{1}}方法来返回我Iterable的{​​{1}}。像魅力一样工作!