2

首先参考:
1st Link
2nd link

第一篇文章1st Link 提到了将 Java 文件直接编译成 JAR 文件并避免构建过程中的一个步骤。有人知道吗?

-瓦迪拉杰

4

2 回答 2

3

当你链接到我的博客文章时,我认为给你更新是公平的。

直接编译成 Jar 实际上相当简单。基本上你扩展

javax.tools.ForwardingJavaFileObject

然后覆盖openOutputStream方法并将其定向到您的 Jar。由于 Java 编译器是高度并发的,但写入 jar 文件是高度连续的,我建议您缓冲到字节数组,然后有一个后台线程在字节数组到达时写入它们。

我正是这样做的,这是我的实验性构建工具 JCompilo https://code.google.com/p/jcompilo/ 这个工具完全没有文档记录,但速度很快。目前,它比任何其他 Java 构建工具快约 20-80%,比相同代码的 Scala 编译器快约 10 倍。

于 2014-07-30T21:12:55.613 回答
1

当作者谈论扩展编译器本身时,他可能了解编译器的内置功能(这就是编译器的能力,也许通过调整代码得到一点鼓励)。

现在我正在研究扩展 Java 6 编译器以删除不需要的文件存在检查,并可能直接在编译器中对类文件进行 jaring。[强调我的]

但是,该功能肯定不受官方支持( javac 网页上没有关于它的文档)。

充其量,该功能取决于编译器;可能需要修改编译器的源代码。

于 2012-05-10T12:08:26.967 回答