Jaka jest różnica między default-jdk, ecj, gcj i openjdk?

23

Dziś rano próbowałem coś zainstalować i natknąłem się na takie zdanie:

The program 'javac' can be found in the following packages:
 * default-jdk
 * ecj
 * gcj-4.6-jdk
 * gcj-4.7-jdk
 * openjdk-7-jdk
 * openjdk-6-jdk
Try: sudo apt-get install <selected package>

Jaka jest różnica między default-jdk, ecj, gcj i openjdk?

Z góry dziękuję.

rɑːdʒɑ
źródło
1
Są też Jikes.
Pacerier

Odpowiedzi:

16

default-jre

Jest to prosty pakiet, który zależy od openjdk-7-jre (a więc w zasadzie jest równoważny z openjdk-7-jre ) i domyślnie-jre-headless . Instaluje „Standardowe środowisko wykonawcze Java lub Java”, którym jest OpenJDK 7 JRE.

Ten pakiet wskazuje środowisko wykonawcze Java lub środowisko uruchomieniowe zgodne z Javą zalecane dla architektury i386, która jest openjdk-7-jre dla i386.

Informacje o
pakiecie Zależności od pakietu (pyskaty)

ecj

Jest to „samodzielny kompilator Java Eclipse”. Zainstalowanie go nie spowoduje zainstalowania Eclipse, ponieważ jest to samodzielny pakiet (patrz link zależności poniżej). Zawiera „samodzielną wersję kompilatora Eclipse JDT, która jest dystrybuowana jako część Eclipse” i jest kompatybilna z Javą 1.3 do 1.7.

Ten pakiet zawiera autonomiczną wersję kompilatora Eclipse JDT, która jest dystrybuowana jako część Eclipse. Przekazuje JCK (Java Compatibility Kit) i jest kompatybilny z Java 1.3, 1.4, 1.5, 1.6 i 1.7.

Informacje o
pakiecie Zależności od pakietu (pyskaty)

gcj-4.6-jdk

(gcj-4.7-jdk jest taki sam, ale dla Java 7)

Jest to nakładka na kompilator GCC do natywnej kompilacji kodu bajtowego Java i plików źródłowych.

GCJ jest nakładką na kompilator GCC, który może natywnie kompilować zarówno pliki źródłowe Java, jak i pliki bajtowe. Kompilator może także generować pliki klas. Inne narzędzia programistyczne Java z classpath są zawarte w tym pakiecie.

Pakiet zawiera również kolekcję skryptów opakowujących i dowiązań symbolicznych. Ma on zapewnić interfejs podobny do Java-SDK do zestawu narzędzi GCJ.

Miał być otwartą alternatywą dla zamkniętego kompilatora Oracle Java. Wygląda na to, że jest teraz w większości obseletny i nieaktualny (nie zaktualizowany), zobacz poniższe linki (szczególnie ostatnie aktualizacje na stronie głównej GCJ).

Informacje o pakiecie

Czy kompilator Java GNU (GCJ) nie działa? -
Strona główna przepełnienia stosu GCJ na gnu.org (Aktualizacja: Link zniknął, ale wiki GCJ jest nadal dostępna

openjdk-6-jdk

(openjdk-7-jdk jest taki sam, ale dla Java 7)

Wersja open source platformy Java.
Z Wiki :

Podstawowym celem projektu OpenJDK jest stworzenie implementacji platformy Java SE typu open source (6 i 7). Jest to domyślna wersja Java, której używa Ubuntu i jest najłatwiejsza do zainstalowania.

Podsumowanie pakietu:

OpenJDK to środowisko programistyczne do budowania aplikacji, apletów i komponentów przy użyciu języka programowania Java.

Pakiety są budowane przy użyciu wsparcia kompilacji IcedTea i poprawek z projektu IcedTea.

Informacje o pakiecie


W twoim pytaniu nie wspomniano również Oracle Java (ponieważ nie ma jej w domyślnych repozytoriach), które wymienię poniżej dla kompletności

oracle-java7-installer

(nazwa pakietu z Web Up8 PPA , dystrybuowana przez Oracle w .tar.gz)

Zamknięte źródło „oficjalnej” implementacji Java przez Oracle (wcześniej Sun). Nie jest hostowany w oficjalnych repozytoriach z powodu problemów licencyjnych. Został udostępniony przez Web Up8 jako skrypt, który pobiera i instaluje go dla Ciebie.

Jak zainstalować - Web Up8

kiri
źródło
czy to znaczy, że instalacja ecj zainstaluje Eclipse + Java?
rɑːdʒɑ
jaki jest cel GCJ?
rɑːdʒɑ
@rajagenupula Zobacz moje zmiany ↑↑
kiri
4

Miałem ten sam problem. Odkryłem, że różnią się między sobą.

Zarówno default-jdki openjdksą bardziej podobne , ponieważ mając te same kody Java API. Różnica polega jednak na platformie docelowej.

  • openjdk: jest najbardziej stabilny . Został zaprojektowany dla wszystkich platform . Zasadniczo jest ukierunkowany na platformy Open Source .

  • default-jdk: nie jest stabilny . Został zaprojektowany z myślą o określonych platformach docelowych . Jest w zasadzie skierowany do zamkniętych platform. (Był później dostępny dla Open-Source) JRE są w tym.

Ale inne są zupełnie inne: są tylko kompilatorami . Wiadomo, że przyszli, ponieważ na początku Java nie była dostępna dla Open-Source. Wydano tylko kompilatory cetain dla takich rzeczy jak Eclipse.

  • gcj -jdk: (Kompilator GNU dla Java). Jest to kompilator dla Java w GNU. (Używany przez Java)

  • ecj: (Eclipse Java Compiler) Jest kompilatorem Java używanym przez Eclipse.

Ten plik ej to nie plik ECJ, który jest pakietem Evolutionary Computation Tool Java


źródło
Dzięki za zatrzymanie się, proszę spojrzeć na powyższe komentarze, które wypowiedziałem na temat innych odpowiedzi i spróbować rozwiązać je proszę.
rɑːdʒɑ