我能否自己编译Java?

3

他们说Sun的Java现在是开源的,那么我能从源代码编译出所有平台吗?

我使用Gentoo,并且发现自己编译系统可以获得很好的性能提升,那么Java(包括VM运行时和库类)是否也可以这样做?

在Windows / Linux下是否可行?

有人这样做过吗?

这样做有意义吗?

6个回答

5

是的,你可以。预编译的二进制文件、源代码等都可以在Sun的OpenJDK项目中获得:

http://openjdk.java.net/

是否对性能有影响很难说。可能会有影响,但通常差别不大。


3

是的,现在这应该是可能的 -- 但是,除非您有一个编译器可以从相同的源输入产生更好的字节码,否则它不会给您带来任何好处。鉴于将Java翻译成字节码的简单性以及大多数优化是在运行时完成的事实,这似乎不太可能。


3

是的,这是可能的。如果您检查您的Linux发行版的存储库,您会注意到通常有OpenJDK选项。您需要的所有内容都可以在http://openjdk.java.net/上找到。


0

我不太确定你为什么想这样做,除了出于教育目的之外。

Sun公司在所有方面(包括JVM和默认库)都投入了大量精力来提高性能,我看不出你为什么会得到更好的结果。

再次强调,学习如何实现这个功能是很好的,但我不会期望有巨大的性能提升。


0

我会从这里开始寻找你的Java JDK源代码。


0

Java 将程序编译为机器码,据我从 Sun 网站收集的信息,它对使用的编译器非常敏感。因此,您需要使用受支持的构建环境来确保结果是 100% 正确的。

对于未经训练的人来说,构建 JDK 并不容易,所以除非您熟悉阅读 Makefiles,否则我建议将此项目留到后面再做 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接