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

Alo*_*kin 39 java gcj

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

LLVM解决方案将是首选.

mik*_*obi 25

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

编辑

本页底部有一个示例.

  • IKVM不会创建本机代码.它只为.NET Universe生成另一种字节代码. (4认同)
  • 显然,无论谁投票给我,都没有阅读OP或我的答案,或者不相信我.实际上看看我提供的链接.他要求替代原生代码生成,这就是我给他的. (4认同)
  • @ Horcrux7,仔细阅读我的回答并实际访问该链接.Mono可以从.NET字节码生成本机机器码.因此,结合IKVM,您可以生成本机代码. (3认同)

use*_*421 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的比较就在这里.请注意,这似乎会增加百分比以提供完全无意义的总数.

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

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

编辑它已经死了.GCJ不再列为GNU包.经过四年零活动后,我们有权对GNU CLASSPATH采取相同的措施.

  • 截至2016年10月,其作者之一宣布死亡:http://tromey.com/blog/?p = 911 (3认同)
  • GNU Classpath于2012年3月更新:http://savannah.gnu.org/forum/forum.php?forum_id = 7156 (2认同)

Gro*_*uez 5

将Java编译为本机的另一种方法是Excelsior JET.

  • 该项目已于 2019 年停止:https://www.excelsiorjet.com/(网站将于 2019 年 6 月中旬关闭)。据我所知,目前唯一剩下的 Java 到本机编译器是 https://graalvm.org。 (2认同)