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

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

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

附:我在谷歌上搜索但未能找到最近的答案

有帮助吗?

解决方案

由于 gcj 是 GNU 类路径之上的编译器,因此您需要官方 JDK 和 GNU 类路径之间的差异。对于 SUN JDK 1.4,请参见 对于 SUN JDK 1.5,请参见 这个 反而。

其他提示

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

可这真的可以帮你学到了什么?

那么从它的主页:

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. 

从GCJ网站。它看起来像GNU编译器是名列前茅的时间编译器而不是刚刚即时编译器像Sun的。因此,有一个区别就在这里。头版是一个有点含糊和引用它确实有一个内建在运行时的libgcj一些字节码解释设施。

我会警惕覆盖大部分1.4和1.5文库的任何库。如果你的目标1.4你大概没有问题。 1.6,你可能带来的伤害的世界。

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

我遇到了日期解析我最后一次看细微的差别。

随着GNU JVM还没有通过Java TCK必须基本上把它作为需要全面测试一个新的平台。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top