跳至內容

GCJ

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

GNU Java 編譯器(英語:GNU Compiler for Java,GCJ)是一个自由的 Java 編譯器。伊是 GCC(GNU Compiler Collection)的一部份,已經十外年的歷史。但是自二空一七年起,GNU 宣布無閣對其進行維護,嘛袂佇 GNU 的後繼版本中包括伊。

GCJ 可將 Java 原始碼編譯做 Java 虛擬機字節碼抑是適用佇無仝架構的機器碼。伊閣會當共包含講字節碼的類文件佮規个 jar 文件編譯做機器代碼。

歷史

GCJ 的運行時庫來源於 GNU Classpath 項目,猶毋過 libgcj 庫之間有一寡區別。GCJ 四配三使用矣 Eclipse Java 編譯器作為編譯前端。

佇二空空七年,GNU 做真濟工課來佇咧 GNU Classpath 中實現兩个重要的 Java 圖形庫:AWT 庫佮 Swing 庫。首先來試看覓實現的為 AWT 庫,當 AWT 庫實現後,就會當開始考慮實現 Swing 庫。這陣上無有一種自由的方式來實現 Swing。猶毋過 GCJ 毋捌支持到 Java 一鋪二閣較懸的版本。這馬來看該項目已經予人完全放棄。

一直到二空一五年,GCJ 無進行任何的開發,而且這个項目攏予人標記做維護模式。佇這段時間,自由的 Java 實現主要佇咧 OpenJDK 項目當中進行。GCC 佇二空一六年九月三十號被對 GCC 工具鏈當中提掉。該通知隨 GCC 七配一版本的發布就發布。而且 GCC 六中猶原包括 GCJ。

性能

使用 GCJ 將 Java 源碼編譯做機器代碼了後,其啟動的時間一般比使用 JVM 運行等效字節碼的啟動時間閣較緊。

Compiled Native Interface

Compiled Native Interface(CNI) , 原名 " Cygnus Native Interface " , 是一个 GCJ 軟體框殼。佮 JNI(Java Native Interface)類似,伊允准 Java 程序訪問佮使用本機共享庫(佇無仝的平台佮無仝的硬體類型中有所不同)佮使用 C + + 編寫的共享庫。

兩種方式的較

CNI 的作者對 CNI 和 JNI 的評價如下:

CNI 依賴於類似 C + + 的 Java 類。譬如講這是一个 Java 類:

就按呢來使用:

另見

  • Excelsior JET ( 另外一个 Java 實現 )
  • IcedTea
  • Kaffe
  • SableVM
  • JamVM
  • Apache Harmony
  • Jikes
  • GraalVM-GraalVM 的本地映像功能使用矣預編譯技術,這予伊會當生做類文件會當執行的二進位文件。
  • 自由的 Java 實現
  • Kotlin-Kotlin / Native 是一種將 Kotlin 語言編譯做本地有法度執行二進位的文件無需要 JVM 的技術。伊包括一个因為 LLVM 的後爿佮本地 Kotlin 庫實現兩个部份。

備註

參考資料

外部連結

  • Official website . GCC . GNU . 二千空七孵三三十 [二千空一十二孵八堵二十九] .(原始內容存檔佇兩千空七抹五鋪九).
  • GCJ 手銬 . [二千空一十二孵八堵二十九] .(原始內容存檔佇兩千空一十二分八七).
  • About CNI . GCJ Manual . [二千空一十二孵八堵二十九] .(原始內容存檔佇兩千空一十二抹八學二十九).
  • Wielaard , Mark . GCJ-past , present , and future . LWN . 二千空五孵四四配六 .(原始內容存檔佇兩千空一十九九分之八二).