GNU-kompilator för Java | |
---|---|
Sorts | Kompilator |
Författare | Cygnus Solutions [1] |
Utvecklaren | GNU-projekt |
Operativ system | Unix-liknande |
Första upplagan | 1998 [1] [2] |
Hårdvaruplattform | Java Virtual Machine |
senaste versionen | 6.5 / 26 oktober 2018 ( 4 december 2015 ) |
Licens | GNU GPL |
Hemsida | gcc.gnu.org/gcc-6/ |
Mediafiler på Wikimedia Commons |
GNU Compiler for Java ( GCJ eller gcj ) är en gratis Java - språkkompilator som är en del av GNU Compiler Collection , men från och med 2017 underhålls den inte längre och kommer inte att ingå i framtida utgåvor.
GCJ kan kompilera Java -källkod till Java Virtual Machine-bytekod eller direkt till maskinkod på många processorarkitekturer . Den kan också kompilera klassfiler som innehåller bytekod, eller hela JAR:er som innehåller sådana filer, till maskinkod.
De flesta runtime-bibliotek som används av gcj kommer från GNU Classpath-projektet (jfr bibliotek libgcj ). Från och med gcj 4.3 är gcj integrerad av ecj, Eclipse Java-kompilatorn . [3]
Från och med 2007 har mycket arbete lagts ner på GNU Classpaths stöd för två Java-grafik- API :er : AWT och Swing . Support för AWT pågår, följt av support för Swing. [fyra]
Från och med 2009 har nya ändringar av gcj nästan upphört. [5] Produkten är för närvarande i underhållsläge.
Från och med 2015 har inga nya utvecklingar tillkännagivits från GCJ och produkten var i underhållsläge, där utvecklingen av Java-verktygssatsen med öppen källkod huvudsakligen skedde i OpenJDK. GCJ togs bort från GCC-stammen den 30 september 2016. Tillkännagivandet om borttagandet gjordes med lanseringen av GCC 7.1, som inte innehåller det. GCJ förblir en del av GCC 6.
Java-kod som kompileras till inbyggd kod med GCJ bör ha en snabbare starttid än motsvarande bytekod som körs i JVM [6] .
Men när Java väl körs, kommer kod kompilerad av GCJ inte nödvändigtvis att köras snabbare än bytekod som exekveras av en modern, JIT -aktiverad JVM . Detta gäller även när GCJ anropas med avancerade optimeringsalternativ som -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . Huruvida det kompilerade programmet kan överträffa JVM eller inte beror på de specifika operationerna som utförs av koden [7] .
Java Virtual Machines ( jämförelse ) | |
---|---|
Sun , Oracle | |
Stora implementeringar | |
Inbäddad |
|
Övrig | |
Utan stöd |
Java | |
---|---|
Plattformar | |
Sun Technologies | |
Viktiga tredjepartstekniker | |
Berättelse |
|
Språkegenskaper | |
Skriptspråk |
|
Java-konferenser |
|