0

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

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

有人可以阐明两者之间的差异吗?

PS:我在谷歌上搜索但没有找到最近的答案

4

5 回答 5

1

由于 gcj 是 GNU Classpath 之上的编译器,因此您需要官方 JDK 和 GNU Classpath 之间的差异。对于 SUN JDK 1.4,请参阅,对于 SUN JDK 1.5,请参阅

于 2009-11-06T21:39:39.707 回答
1

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

这真的能帮助你学习吗?

于 2009-11-07T03:23:00.910 回答
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. 
于 2009-11-06T21:39:55.027 回答
0

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

我会警惕任何涵盖大多数 1.4 和 1.5 库的库。如果您的目标是 1.4,您可能还可以。1.6,您可能正处于一个受伤的世界。

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

于 2009-11-06T21:43:31.700 回答
0

上次查看时,我在日期解析中遇到了细微的差异。

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

于 2009-11-06T23:28:05.470 回答