2010-10-27 75 views
33

截至2010年10月,GNU's Java compiler死了嗎? 是否有任何活動的替代品(尤其是將Java編譯爲本機代碼)?GNU的Java編譯器(GCJ)死了嗎?

LLVM解決方案將是首選。

+1

@ org.life.java,我不知道OpenJDK可以創建本機二進制文件,有一個例子嗎? – mikerobi 2010-10-27 16:53:51

+0

@mikerobi我的錯誤可能是:p – 2010-10-27 16:55:40

+0

恩,你從哪裏看到它已經死了?它不會從鏈接的頁面看起來死了。 – 2010-10-27 17:44:48

回答

23

您可以使用IKVMMono的提前編譯器生成本機代碼。

EDIT

有在this page底部的例子。

+4

IKVM不會創建本機代碼。它僅爲.NET Universe生成另一種類型的字節碼。 – Horcrux7 2010-10-27 18:53:40

+2

@ Horcrux7,仔細閱讀我的答案,並實際訪問鏈接。單聲道可以從.NET字節碼生成本機機器碼。因此,結合IKVM,您可以生成本機代碼。 – mikerobi 2010-10-27 19:03:34

+3

顯然誰投票給我沒有閱讀OP或我的答案,或不相信我。其實看看我提供的鏈接。他要求替代本地代碼生成,這就是我給他的。 – mikerobi 2010-10-27 20:33:17

1

我認爲不是它已經死了。它只有少數重要。這導致發展緩慢。有3個事實,因爲它今天只有幾個重要的:

  • 它基於GNU Classpath。由於Java是開放源碼(OpenJDK),因此不需要另一個開源Java。這減慢了開發速度。
  • Java在過去幾年中速度更快。 GCJ輸出不會更快。在很多情況下,它比較慢。
  • GNU類路徑有許多不兼容性。
+4

1年沒有更新已成爲6.它已經死了。 – 2015-07-20 15:26:55

+2

自去年10月以來正式死亡:http://tromey.com/blog/?p=911 – Matthieu 2017-01-02 23:20:26

19

一個更相關的問題是它是否真的活着。考慮這些問題,從它自己的網站:

  • 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編譯器'。它是一個稱爲GNU CLASSPATH的Java子集的編譯器。反過來自2009年2月以來還沒有更新過。

如果它沒死,它肯定會躺下。

編輯它已經死了。 GCJ不再是listed as a GNU package。經過四年的零度活動,我們有權假定GNU CLASSPATH是相同的。

+2

GNU Classpath於2012年3月更新:http://savannah.gnu.org/forum/forum.php?forum_id=7156 – 2013-03-13 15:33:11

+1

@JanusTroelsen即使我在發佈我的答案近三年後寫了這篇文章,並且在您發表評論之後六個月,它仍未被更新。證明這一點,* nicht戰爭?*我也沒有看到該頁面中的任何內容,甚至可以直接從他們自己的網站上糾正我所引用的衆多缺陷中的大多數。 – EJP 2013-09-13 11:59:44

+2

截至2016年10月,其作者之一宣告死亡:http://tromey.com/blog/?p=911 – Matthieu 2017-01-02 23:24:21