(Translated by https://www.hiragana.jp/)
GCJ - 维基百科,自由的百科全书 とべ转到内容ないよう

GCJ

维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
重定しげさだこうGNU Compiler for Java
GNU Compiler for Java
開發かいはつしゃThe GNU Project
くび发布1998ねん9がつ6にち,​25ねんまえ​(1998-09-06[1]
さい版本はんぽん
  • 6.5 (2018ねん10がつ26にち;穩定版本はんぽん)[2]
編輯維基數據鏈接
操作そうさけいUnix-like
类型Compiler
许可协议GNU GPL
网站gcc.gnu.org

GNU Java编译英語えいごGNU Compiler for JavaGCJいち自由じゆうてきJava编译。它是GCC(GNU Compiler Collection)てきいち部分ぶぶんやめゆうじゅう多年たねんてき历史。ただし2017ねんおこり,GNU宣布せんぷさい对其进行维护,也不かいざいGNUてききさき继版本中ほんなか包括ほうかつ它。[3][4]

GCJはたJava げんだい码编译为Javaきょ拟机节码ある适用于不どう构的つくえ码。它还以将包含ほうがん节码てき类文けんかずせい个jarぶんけん编译为机だい码。[5][6]

历史

[编辑]

GCJてき运行时库らいげんGNU Classpath项目,ただしlibgcj库之间有いち些区别。GCJ4.3使用しようりょうEclipse Java编译さく为编译前はし[7]

ざい2007ねん,GNU做了许多工作こうさくらいざいGNU Classpathちゅう实现两个重要じゅうようてきJava图形库:AWT库和Swing库。くびさき尝试实现てき为AWT库,とうAWT库实现后,便びん以开はじめこう虑实现Swing库。这时いたりしょうゆう一种自由的方式来实现Swing。[8]ただしGCJ从未支持しじいたJava1.2以及さらだかてき版本はんぽん。现在来ざいらい该项やめ完全かんぜん弃。

ちょくいたり2015ねん,GCJ进行にんなんてき开发,并且该项标记为维护模しきざい这段时间,自由じゆうてきJava实现主要しゅようざいOpenJDK项目ちゅう进行。[9] GCJざい2016ねん9がつ30にちGCC工具こうぐ链中うつりじょ[10][11]通知つうちずいGCC7.1版本はんぽんてき发布而发ぬの[12] 而GCC6ちゅう包括ほうかつGCJ。

性能せいのう

[编辑]

使用しようGCJはたJavaげん码编译为つくえだい码后,其启动时间一般いっぱん使用しようJVM运行とうこう节码てき启动时间さらこころよ[13]

Compiled Native Interface

[编辑]

Compiled Native Interface (CNI), 原名げんめい"Cygnus Native Interface", いち个GCJ软件かまちあずかJNI(Java Native Interface)类似,它允许Javaほどじょ访问使用しようほんつくえきょうとおるざいかく平台ひらだいかず不同ふどうてきかたけん类型中有ちゅううしょ不同ふどうかず使用しようC++编写てきどもとおる库。

两种方式ほうしきてき

[编辑]

CNIてき作者さくしゃ对于CNIJNIてき评价如下:[14]

CNI赖于类似于C++てきJava类。れい如这いち个Java类:[15]

public class Int
{
   public int i;
   public Int(int i) { this.i = i; }
   public static Int zero = new Int(0);
}

于是就可以这样使用しよう

#include <gcj/cni.h>
#include <Int>

Int *mult(Int *p, int k)
{
  if (k == 0)
    return Int::zero;  // しず态成员访问
  return new Int(p->i * k);
}

另见

[编辑]
  • Excelsior JET (另一个Java实现)
  • IcedTea
  • Kaffe
  • SableVM
  • JamVM
  • Apache Harmony
  • Jikes
  • GraalVM - GraalVMてき本地ほんじ映像えいぞうこうのう使用しようりょう预编译技术,这使とく它可以生成せいせい类文けん执行てき进制ぶんけん
  • 自由じゆうてきJava实现
  • Kotlin - Kotlin/Nativeいち种将Kotlin语言编译为本执行二进制文件而无需JVMてきわざ术。它包括ほうかついち个基于LLVMてききさきはし和本わほんKotlin库实现两个部ぶん

备注

[编辑]
  1. ^ 这句话的意思いし,CNIてき理念りねんざい编译层面使JavaC++做到つきりょうけんよう,而这需要じゅようJavaC++てき编译てきぼう些标じゅん一致いっち。GNU计划刚好すんで实现りょうJava编译また实现りょうC++编译いん此很容易よういざい编译层面对其进行调整,使つかい其更えきよう性能せいのうさらだか

参考さんこう资料

[编辑]
  1. ^ Anthony Green, Cygnus Solutions. GCJ announcement. [2020-08-07]. (原始げんし内容ないようそん于2017-07-11). 
  2. ^ GCC Releases - GNU Project. 
  3. ^ Archived copy. [2010-04-22]. (原始げんし内容ないようそん档于2007-05-09). 
  4. ^ Campbell, Bill. Introduction to Compiler Construction in a Java World. CRC Press Taylor & Francis Group. 2013 [2014-02-06]. ISBN 978-1-4398-6088-5. (原始げんし内容ないようそん于2020-08-12). 
  5. ^ そん副本ふくほん. [2020-08-07]. (原始げんし内容ないようそん于2020-09-04). 
  6. ^ そん副本ふくほん. [2020-08-07]. (原始げんし内容ないようそん于2016-08-20). 
  7. ^ gcj to use Eclipse compiler as a front end. 2007-01-08 [2007-05-20]. (原始げんし内容ないようそん档于2007-05-09). 
  8. ^ GCC Frequently Asked Questions - GNU Project - Free Software Foundation (FSF). gcc.gnu.org. [2020-08-01]. (原始げんし内容ないようそん于2020-06-12). 
  9. ^ GCC Looks To Turn Off Java, Replace With Go Or ADA. [2020-08-07]. (原始げんし内容ないようそん于2020-07-25). 
  10. ^ Andrew Haley. [gcc] Revision 240661. 2016-09-30 [2020-08-07]. (原始げんし内容ないようそん于2019-06-16). 
  11. ^ Tromey, Tom. The Deletion of gcj. The Cliffs of Inanity. 2016-10-02 [2016-10-03]. (原始げんし内容ないようそん于2020-07-25). 
  12. ^ GCC 7 Release Series: Changes, New Features, and Fixes. [2017-05-09]. (原始げんし内容ないようそん于2020-09-02). 
  13. ^ GCJ: The GNU Static Java Compiler (PDF). [2009-08-02]. (原始げんし内容ないよう (PDF)そん档于2011-06-07). 
  14. ^ The GCJ FAQ - GNU Project - Free Software Foundation (FSF). [2020-08-07]. (原始げんし内容ないようそん于2016-10-20). 
  15. ^ 这个れい子来こらいげんhttps://gcc.gnu.org/onlinedocs/gcj/Objects-and-Classes.html#Objects-and-Classes页面そん档备份そん互联网档あん

外部がいぶ链接

[编辑]