代码之家  ›  专栏  ›  技术社区  ›  Carlos G.

用Java编写GNU编译器代替Java JDK时的差异

  •  0
  • Carlos G.  · 技术社区  · 16 年前

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

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

    有人能解释一下两者之间的区别吗?

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

    5 回复  |  直到 16 年前
        1
  •  1
  •   ismail    16 年前

    因为gcj是GNU类路径之上的编译器,所以需要官方JDK和GNU类路径之间的区别。对于Sun JDK 1.4,请参见 this 对于Sun JDK 1.5,请参见 this one 相反。

        2
  •  1
  •   Kevin Bourrillion Gergely    16 年前

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

    这真的能帮助你学习吗?

        3
  •  0
  •   chollida    16 年前

    从主页上看:

    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. 
    
        4
  •  0
  •   Randaltor    16 年前

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

    我会对任何一个覆盖1.4和1.5库的库保持警惕。如果你的目标是1.4,你可能没事。1.6你很可能会受到伤害。

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

        5
  •  0
  •   Thorbjørn Ravn Andersen    16 年前

    上次我看的时候,在日期分析方面遇到了细微的差异。

    由于GNU JVM还没有通过Java TCK,所以必须将其视为一个需要完全测试的新平台。