GNU的Java编译器(GCJ)死了吗?

时间:2010-10-27 16:39:48

标签: java gcj

截至2010年10月,GNU's Java compiler已经死了? 是否有任何有效的替代方案(特别是将Java编译为本机代码)?

首选LLVM解决方案。

4 个答案:

答案 0 :(得分:25)

您可以使用IKVMMono提前编译生成本机代码。

修改

this page底部有一个例子。

答案 1 :(得分:24)

一个更相关的问题是它是否真的活着。从自己的网站上考虑这些问题:

  • 1.2 支持“仍然不完整”。
  • 1.3同上。
  • 该项目最近一年前更新[截至2009年10月]。
  • 目前“支持大多数1.4库以及一些1.5添加。”
  • 不支持java.nio.
  • 不支持javax.naming('完整但没有提供商')。
  • 不支持javax.sql.
  • 不支持AWT或Swing。
  • 不支持通过java.text.
  • 进行本地化
  • java.security的状态是'未知'。
  • 不检查java.lang.reflect.
  • 中的权限
  • 是否编译泛型?
  • 其他包装中缺少巨大的块状物,例如近{50} java.util.
  • 没有注释。
  • 没有脚本引擎。
  • 几乎所有javax.xml.*(递归地)都缺失了。
  • org.omg.CORBA.
  • 实际上没有org.w3c.
  • 目前与JDK 1.6的比较是here。请注意,这似乎会增加百分比以提供完全无意义的总数。

请注意,它不会被称为“Java编译器”。它是Java子集的编译器,称为GNU CLASSPATH。反过来自2009年2月以来没有更新。

如果它没有死,那肯定是躺着。

编辑它已经死了。 GCJ不再是listed as a GNU package。经过四年零活动后,我们有权对GNU CLASSPATH采取相同的行动。

答案 2 :(得分:5)

将Java编译为native的一种替代方法是Excelsior JET

答案 3 :(得分:1)

我认为不是它死了。它只有少数重要。这导致了缓慢的发展。有三个事实,因为它今天只有很少重要:

  • 它基于GNU Classpath。由于Java是开源的(OpenJDK),因此不需要另外的开源Java。这降低了开发速度。
  • Java在过去几年里变得更快。 GCJ输出速度不快。在许多情况下,它会变慢。
  • GNU Classpath有许多不兼容性。