GNU Classpath - GNU Classpath
![]() | |
Snímek obrazovky ![]() Demonstrace třídy GNU Classpath Houpačka | |
Vývojáři | Projekt GNU (formálně v držení FSF ) |
---|---|
Stabilní uvolnění | 0.99[1] / 16. března 2012 |
Úložiště | ![]() |
Napsáno | C a Jáva |
Operační systém | Cross-platform |
Typ | Knihovna |
Licence | Výjimka spojující GPL |
webová stránka | www |
GNU Classpath je svobodný software implementace standardu třídní knihovna pro Programovací jazyk Java. Většina tříd z J2SE 1.4 a 5.0 jsou implementovány. Classpath lze tedy použít ke spuštění na bázi Java aplikace. GNU Classpath je součástí Projekt GNU. Původně byl vyvinut souběžně s libgcj kvůli licenční nekompatibilitě, ale později se oba projekty spojily.
GNU Classpath byl považován za projekt s vysokou prioritou Free Software Foundation. Když začal projekt Classpath, licence pro oficiální implementaci Java od Sun Microsystems nedovolil distribuci žádných změn. Od vzniku projektu Classpath začala OpenJDK byl propuštěn pod GPL a nyní slouží jako oficiální referenční implementace pro Java platforma.
Licence
GNU Classpath je licencován pod GNU General Public License s spojovací výjimka. Tohle je licence na bezplatný software. Veškerý kód formálně vlastní společnost Free Software Foundation,[Citace je zapotřebí ] a tento vlastník je vázán svými vlastními smluvními závazky vůči vývojářům.[je zapotřebí objasnění ]
Použití
GNU Classpath používají mnozí bezplatné runtime Java (jako Kaffe, SableVM, JamVM, Jikes RVM a VMKit), protože každý plně vybavený virtuální stroj Java musí poskytovat implementaci knihoven standardních tříd.
Některá další použití zahrnují:
- The GNU kompilátor pro Javu, který je schopen kompilovat kód Java do nativních samostatných spustitelných souborů.
- GCJAppletViewer[4] pro spuštění Java applety z příkazového řádku, pokud nejsou podporovány používaným prohlížečem.
- IKVM.NET, který integruje Javu s .NET Framework
- JNode, operační systém pro spouštění aplikací Java. Tento systém je napsán pouze v Javě a assembleru.
- Specializované virtuální stroje jako Jaos pro integraci s Programovací jazyk Oberon, a JamajkaVM pro vestavěné systémy se zárukami v reálném čase.
- Virtuální stroje pro distribuované výpočty s klastry, které mají zapnuto až 128 procesorů Myrinet.[5]
- The Ledový čaj projekt používal GNU Classpath jako náhradu za proprietární prvky Windows OpenJDK, před jejich výměnou proti proudu.
Dějiny
Vývoj GNU Classpath začal v roce 1998 s pěti vývojáři.[Citace je zapotřebí ] Během historie se několikrát spojila s dalšími projekty, které měly podobné cíle (Kaffe, libgcj). V minulosti GNU Classpath dodával svůj vlastní virtuální stroj (Japhar). Protože se Classpath stával základní knihovnou sdílenou s mnoha různými projekty, tomuto virtuálnímu stroji se dostávalo stále menší pozornosti a nyní již není podporován.[Citace je zapotřebí ]
Po implementaci většiny oficiálních API Java 1.4 se práce v projektu stala více orientovanou na chyby než na pokrytí API. 24. října 2006 byla implementována poslední chybějící třída 1.4, HTMLWriter, byl spáchán. Rychlost vývoje (matematicky vypočítaná jako průměrný počet nových) řádky kódu za den) dosáhl svého maxima v roce 2006.[Citace je zapotřebí ]
Název GNU Classpath původně navrhl Bradley M. Kuhn jednomu z prvních vývojářů Paulu Fisherovi. V té době tam byl velké znepokojení v komunitě implementací Free Java o prosazování ochranné známky společnosti Sun v Javě proti bezplatným implementacím. Kuhn navrhl jméno $ CLASSPATH, který je proměnná prostředí používá většina systémů Java k označení místa, kde se v počítači nacházejí knihovny Java. Od té doby $ CLASSPATH často rozšířena na a název cesty který obsahoval slovo Jáva (jako / usr / lib / java
), to byl způsob, jak evokovat jméno Jáva aniž by to vlastně řekl. Fisherovi a dalším vývojářům se nelíbilo nevzhledné používání $ a všechna velká písmena a usadil se Classpath.
Vývojářský tým
Správce se stará o právní stránku projektu, připravuje pravidelná vydání projektu a provádí určité řízení kvality. Správce také uděluje CVS přístupová oprávnění.[Citace je zapotřebí ]
GNU Classpath nemá žádnou formální hierarchii. Práce je prováděna technicky nejschopnějšími pracovníky a neexistuje ani přísné rozdělení práce. Všechny změny kódu jsou nejprve odeslány do diskusního seznamu jako opravy, kde je lze v případě potřeby postavit proti. Projekt obvykle přijímá pět až osm oprav denně.
Knihovna GNU Classpath pokrytí kódu pokrok lze sledovat proti OpenJDK6[6] a OpenJDK7.[7]
Integrace virtuálních strojů
GNU Classpath obsahuje třídy z oficiálního jmenného prostoru Java API. V případě, že jsou volání nativního kódu nezbytná nebo velmi žádaná, provádí se to z malého počtu tříd „VM“. Název takové třídy virtuálních počítačů odpovídá názvu třídy vyžadující nativní metody, plus další VM prefix: VMObject, VMString a tak dále. Třídy virtuálních počítačů, uložené odděleně od zbytku kódu, jsou balíček soukromý a konečný. Metody těchto tříd obsahují klíčové slovo rodák, což naznačuje nutnost podpory nativní knihovny. Takové knihovny poskytují autoři virtuálního stroje Java, takže GNU Classpath lze připojit k téměř jakémukoli virtuálnímu stroji Java, pokud jsou zdroje takového virtuálního stroje k dispozici a lze je upravit.
Podpora nových jazykových funkcí v prostředí Java 1.5
Před verzí 0.95 se každé vydání GNU Classpath skládalo ze dvou samostatných uvolňovacích tarballů; ten, který představoval stav hlavního vývojová větev a další, která obsahovala obsah experimentálnější větve, podporující doplňky, jako jsou generika, výčty a anotace, přítomné v Javě 1.5.[8]
Od verze 0.95,[9] Dodatky Java 1.5, jako jsou generika, byly plně integrovány do hlavní větve. Pobočku lze postavit pomocí Zatmění překladač, ecj, ke kompilaci zdrojového kódu Java 1.5 do bytecode. V případě GCJ používá ecj k provedení této počáteční fáze, poté převede bytecode na nativní kód. Od 0,95 dále GNU Classpath podporuje také kompilaci a nové spuštění GPLed open-source javac překladač pomocí GNU Classpath a také umožňuje kompilaci knihovny tříd GNU Classpath, nástrojů a příkladů javac sám.
Třídy z domény omg.org
GNU Classpath nepřijímá žádný kód, který má nesvobodnou licenci, nebo který byl automaticky generován z kódu s nesvobodnou licencí. Standardní rozhraní Java API obsahuje řadu tříd z domény omg.org, které se obvykle generují z domény IDL soubory, vydané Skupina pro správu objektů. Licence „použití, ale bez úprav“ těchto souborů se považuje za nesvobodnou. Z tohoto důvodu byly zmíněné třídy v projektu GNU Classpath psány od nuly, pouze s použitím oficiálních tištěných specifikací OMG. Proto je tato část GNU Classpath stejně bezplatná jako jakýkoli jiný kód v projektu.
Viz také
- Apache Harmony
- GNU kompilátor pro Javu
- IKVM.NET
- JamVM
- JamajkaVM
- Jaos
- JikesRVM
- Kaffe
- Ledový čaj
- Zdarma implementace Java
- Knihovna tříd Java
Poznámky
Reference
- ^ Hughes, Andrew John (2012-03-16). „Vydána GNU Classpath 0,99!“ (Celosvětová Síť log). Fuseyismus. Archivovány od originál dne 2012-12-14. Citováno 2012-03-20.
- ^ http://git.savannah.gnu.org/cgit/classpath.git/log/
- ^ http://tromey.com/blog/?p=911
- ^ Prohlížeč appletů GCJ, Koders, archivovány z originál dne 2009-09-18, vyvoláno 2009-09-14.
- ^ "Jupiter", EECG, U Toronto.
- ^ "Pokrytí knihovny GNU Classpath proti OpenJDK6", J API, Fuseyismus.
- ^ "Pokrytí knihovny GNU Classpath proti OpenJDK7", J API, Fuseyismus.
- ^ "GNU Classpath" 95% a počítání "0,19 vydáno", Projekt GNU (oznámení), Software, The Free Software Foundation, 02.11.2005, vyvoláno 31. května 2011.
- ^ "Vydání GNU Classpath 0.98" Lepší pozdě než nikdy ", Projekt GNU (oznámení), Software, The Free Software Foundation, 2009-02-05.
- ^ Fosdem (archiv konference), Classpath, 2006.
- ^ "Classpath", GNU není projekt Unixu (zdrojový kód) (příklad), The Free Software Foundation.
externí odkazy
- Oficiální webové stránky
- "Automaticky generovaná dokumentace, včetně zdrojového kódu", Classpath.
- "Stavitel", Classpath: testovací běhy a testy binární kompatibility
- Vývojář GNU Classpath (květen 2006), „Stav spolupráce na projektu java zdarma“, GNU / Linux týdenní zprávy (článek).
- "Propustný vývoj", SMI (Celosvětová Síť log), CH: ETHZ, 2006-01-25, archivovány od originál dne 2006-07-20.