Qual è la differenza tra default-jdk, ecj, gcj e openjdk?


23

Questa mattina ho provato a installare qualcosa e ho trovato una dichiarazione come questa:

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>

Qual è la differenza tra default-jdk, ecj, gcj e openjdk?

Grazie in anticipo.


1
Ci sono anche jike.
Pacerier,

Risposte:


16

default-jre

Questo è un pacchetto semplice che dipende da openjdk-7-jre (e quindi sostanzialmente equivalente a openjdk-7-jre ) e default-jre-headless . Installa il "Runtime standard compatibile Java o Java", che è OpenJDK 7 JRE.

Questo pacchetto punta al runtime Java, o runtime compatibile Java consigliato per l'architettura i386, che è openjdk-7-jre per i386.

Informazioni sul
pacchetto Dipendenze del pacchetto (impertinente)

Corte di giustizia europea

Questo è il "compilatore Java Eclipse autonomo". Installandolo non verrà installato Eclipse, poiché si tratta di un pacchetto autonomo (vedere il link delle dipendenze di seguito). Contiene "una versione standalone del compilatore JDT di Eclipse che è distribuita come parte di Eclipse" ed è compatibile con Java da 1.3 a 1.7.

Questo pacchetto fornisce una versione autonoma del compilatore JDT di Eclipse che viene distribuito come parte di Eclipse. Passa il JCK (Java Compatibility Kit) ed è compatibile con Java 1.3, 1.4, 1.5, 1.6 e 1.7.

Informazioni sul
pacchetto Dipendenze del pacchetto (impertinente)

gcj-4.6-jdk

(gcj-4.7-jdk è lo stesso ma per Java 7)

Questo è un frontend per il compilatore GCC per compilare nativamente bytecode Java e file sorgente.

GCJ è un front-end per il compilatore GCC che può compilare nativamente sia i file sorgente Java (tm) sia i file bytecode. Il compilatore può anche generare file di classe. Altri strumenti di sviluppo java di classpath sono inclusi in questo pacchetto.

Il pacchetto contiene anche una raccolta di script wrapper e collegamenti simbolici. Ha lo scopo di fornire un'interfaccia simile a Java-SDK al set di strumenti GCJ.

Doveva essere un'alternativa open source al compilatore Oracle Java chiuso. Sembra essere per lo più obsoleto e obsoleto (non aggiornato) ora, vedere i collegamenti di seguito (in particolare gli ultimi aggiornamenti sulla home page di GCJ).

Informazioni sul pacchetto

Il compilatore Java (GCJ) di GNU è morto? - Stack Overflow
GCJ home page su gnu.org (Aggiornamento: il link è sparito ora, ma GCJ wiki è ancora disponibile

openjdk-6-jdk

(openjdk-7-jdk è lo stesso ma per Java 7)

Una versione open source della piattaforma Java.
Dal Wiki :

L'obiettivo principale del progetto OpenJDK è quello di produrre un'implementazione open source della piattaforma Java SE (6 e 7). Questa è la versione predefinita di Java utilizzata da Ubuntu ed è la più semplice da installare.

Riepilogo del pacchetto:

OpenJDK è un ambiente di sviluppo per la creazione di applicazioni, applet e componenti utilizzando il linguaggio di programmazione Java.

I pacchetti sono creati usando il supporto di build IcedTea e le patch dal progetto IcedTea.

Informazioni sul pacchetto


Inoltre, non menzionato nella tua domanda era Oracle Java (perché non è nei repository predefiniti), che elencherò di seguito per completezza

oracle-Java7-installazione

(nome del pacchetto da Web Up8 PPA , distribuito da Oracle in .tar.gz)

L'implementazione 'ufficiale' chiusa di Java da Oracle (precedentemente Sun). Non ospitato nei repository ufficiali a causa di problemi di licenza. È stato reso disponibile da Web Up8 come script che lo scarica e lo installa per te.

Come installare - Web Up8


significa che l'installazione di ecj installerà Eclipse + Java?
rʒɑdʒɑ

qual è lo scopo di GCJ in particolare?
rʒɑdʒɑ

@rajagenupula Vedi le mie modifiche ↑↑
kiri

4

Ho avuto lo stesso problema. Quello che ho scoperto è che stanno avendo differenze l'uno dall'altro.

Entrambi default-jdke openjdksono più simili in quanto hanno gli stessi codici API Java. Ma la differenza sta nella piattaforma target.

  • openjdk: è il più stabile . È stato progettato per tutte le piattaforme . Praticamente si rivolge a piattaforme open source .

  • default-jdk: non è stabile . È stato progettato per alcune piattaforme target . Praticamente si rivolge a piattaforme Chiuse . (Più tardi disponibile per Open-Source) JRE sono in questo.

Ma altri sono totalmente diversi: sono solo compilatori . Si sapeva che venivano perché all'inizio Java non era disponibile per Open-Source. Solo alcuni compilatori sono stati rilasciati per cose come Eclipse.

  • gcj -jdk: (compilatore GNU per Java). È un compilatore per Java in GNU. (Usato da Java)

  • ecj: (Eclipse Java Compiler) È il compilatore Java utilizzato da Eclipse.

Questo ecj non è ECJ che è Java Evolutionary Computation Toolkit


Grazie per esserti fermato, per favore guarda i commenti sopra che ho fatto sulla risposta dei compagni e prova a risolverli per favore.
rʒɑdʒɑ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.