GNU Compiler til Java | |
---|---|
Type | Kompiler |
Forfatter | Cygnus Solutions [1] |
Udvikler | GNU projekt |
Operativ system | Unix-agtig |
Første udgave | 1998 [1] [2] |
Hardware platform | Java virtuel maskine |
nyeste version | 6.5 / 26. oktober 2018 ( 4. december 2015 ) |
Licens | GNU GPL |
Internet side | gcc.gnu.org/gcc-6/ |
Mediefiler på Wikimedia Commons |
GNU Compiler for Java ( GCJ eller gcj ) er en gratis Java -sprog- compiler , der er en del af GNU Compiler Collection , men fra 2017 vedligeholdes den ikke længere og vil ikke være en del af fremtidige udgivelser.
GCJ kan kompilere Java -kildekode til Java Virtual Machine bytecode eller direkte til maskinkode på mange processorarkitekturer . Det kan også kompilere klassefiler, der indeholder bytekode, eller hele JAR'er , der indeholder sådanne filer, til maskinkode.
De fleste af runtime-bibliotekerne, der bruges af gcj, kommer fra GNU Classpath-projektet (jf. bibliotek libgcj ). Fra gcj 4.3 er gcj integreret af ecj, Eclipse Java-kompileren . [3]
Fra 2007 er der gået meget arbejde i GNU Classpaths understøttelse af to Java-grafik- API'er : AWT og Swing . Support til AWT er løbende, efterfulgt af support til Swing. [fire]
Fra 2009 er nye ændringer af gcj næsten stoppet. [5] Produktet er i øjeblikket i vedligeholdelsestilstand.
Fra 2015 er der ikke blevet annonceret nye udviklinger fra GCJ, og produktet var i vedligeholdelsestilstand, hvor udviklingen af open source Java-værktøjssættet primært fandt sted i OpenJDK. GCJ blev fjernet fra GCC-stammen den 30. september 2016. Annonceringen af dens fjernelse blev lavet med udgivelsen af GCC 7.1, som ikke indeholder den. GCJ forbliver en del af GCC 6.
Java-kode kompileret til indbygget kode ved hjælp af GCJ bør have en hurtigere opstartstid end den tilsvarende bytekode, der kører i JVM [6] .
Men når først Java kører, vil kode kompileret af GCJ ikke nødvendigvis køre hurtigere end bytekode udført af en moderne, JIT -aktiveret JVM . Dette er sandt, selv når GCJ påkaldes med avancerede optimeringsmuligheder såsom -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . Hvorvidt det kompilerede program kan overgå JVM eller ej, afhænger af de specifikke operationer, der udføres af koden [7] .
Java Virtual Machines ( sammenligning ) | |
---|---|
Sol , Oracle | |
Større implementeringer | |
Indlejret |
|
Andet | |
Ikke understøttet |
Java | |
---|---|
Platforme | |
Sun Technologies | |
Nøgle tredjepartsteknologier | |
Historie |
|
Sprogegenskaber | |
Scripting sprog |
|
Java konferencer |
|