使用GNU Compiler for Java而不是Sun JDK编译Java时的差异

时间:2009-11-06 21:35:00

标签: java gcj gnu-classpath

我正在开展一个学校项目,我需要使用GNU Compiler for Java。我一直在使用官方的Sun JDK,现在我担心可能会使我的工作变得复杂的差异。

我特别感兴趣的是哪个版本的Java是最新GCJ编译器支持的版本

有人能否解释一方之间的差异?

PS:我在google上搜索但未能找到最近的答案

5 个答案:

答案 0 :(得分:1)

由于gcj是GNU Classpath之上的编译器,因此您需要官方JDK和amp;之间的差异。 GNU类路径。对于SUN JDK 1.4,有关SUN JDK 1.5的信息,请参阅this,请参阅this one

答案 1 :(得分:1)

如果这个答案应该成为最高投票答案,那就意味着你应该请你的教授重新考虑为什么他会让你使用这样一个不寻常的平台。在现实世界中,人们主要使用Sun JDK。我不认为这在不久的将来会有太大的变化。在大多数情况下,它是一种优质产品。

这真的可以帮助你学习吗?

答案 2 :(得分:0)

从它的主页开始:

http://gcc.gnu.org/java/

Compiled applications are linked with the GCJ runtime, libgcj, which provides the core 
class libraries, a garbage collector, and a bytecode interpreter. libgcj can dynamically 
load and interpret class files, resulting in mixed compiled/interpreted applications. It 
has been merged with GNU Classpath and supports most of the 1.4 libraries plus some 1.5 
additions. 

答案 3 :(得分:0)

来自GCJ网站。看起来GNU编译器是一个提前编译器而不是像Sun这样的即时编译器。所以那里有一个区别。首页有点模糊,并且引用它确实在libgcj运行时中内置了一些字节码解释工具。

我对任何涵盖1.4和1.5库的MOST的库都很谨慎。如果你的目标是1.4你可能没问题。 1.6,你可能正处于一个受伤的世界。

请记住,如果GCJ只能使用INTERPRET类文件,那么运行未编译的代码可能比Sun的JIT编译器慢得多。

答案 4 :(得分:0)

上次我看时,我在日期解析方面遇到了细微差别。

由于gnu JVM尚未通过Java TCK,因此您必须将其视为需要全面测试的新平台。