在使用jdk1.6编译器API进行编译时,如何将jar文件放入内存中?

时间:2014-06-27 02:47:38

标签: java java-compiler-api

我正在使用jdk1.6编译器API进行一些动态编译 现在,我只是将所有需要的jar文件转储到磁盘上,以便在编译时将它们包含在类路径中 是否有某种技巧可以直接将jar文件放入内存路径中? 我没有通过扩展javax.tools.ForwardingJavaFileManager来弄清楚如何做到这一点 有人可以给我一些提示吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

阅读here,了解如何使用清单将jar文件添加到类路径中。

你的jar里面应该有一个META-INF文件夹,Manifest.mf文件应该放在jar的那个文件夹中。

还可以选择将jar文件放在JAVA_HOME/lib/ext中,但这是一种不好的做法。 JRE可以被许多其他应用程序使用,而不需要在类路径中使用它们。

答案 1 :(得分:0)

我编写了自己的FileManager,它完全在内存中。使用这种方法可以加载甚至将结果写入内存文件系统"

https://github.com/OpenHFT/Java-Runtime-Compiler/blob/master/compiler/src/main/java/net/openhft/compiler/MyJavaFileManager.java