web-dev-qa-db-fra.com

Quelle est la différence entre default-jdk, ecj, gcj et openjdk?

Ce matin, j'ai essayé d'installer quelque chose et suis tombé sur une déclaration comme celle-ci:

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>

Quelle est la différence entre default-jdk, ecj, gcj et openjdk?

Merci d'avance.

23
rɑːdʒɑ

default-jre

Ceci est un paquet simple qui dépend de openjdk-7-jre (et est donc fondamentalement équivalent à openjdk-7 -jre ) et default-jre-headless . Il installe le "Runtime compatible" Java ou Java ", qui est OpenJDK 7 JRE.

Ce package pointe vers le moteur d'exécution Java ou compatible Java recommandé pour l'architecture i386, à savoir openjdk-7-jre pour i386.

Informations sur le package
Dépendances du paquet (grivois)

ecj

C'est le "compilateur Eclipse Java autonome" ". L'installer n'installera pas Eclipse, car il s'agit d'un paquet autonome (voir le lien des dépendances ci-dessous). Il contient "une version autonome du compilateur Eclipse JDT qui est distribué avec Eclipse" et est compatible avec les versions Java 1.3 à 1.7.

Ce paquet fournit une version autonome du compilateur Eclipse JDT, distribué avec Eclipse. Il passe le JCK (Java Compatibility Kit) et est compatible avec Java 1.3, 1.4, 1.5, 1.6 et 1.7.

Informations sur le package
Dépendances du paquet (grivois)

gcj-4.6-jdk

(gcj-4.7-jdk est identique mais pour Java 7)

Il s’agit d’une interface du compilateur GCC pour compiler nativement les fichiers source Java et les codes sources.

GCJ est une interface du compilateur GCC qui peut compiler de manière native les fichiers source et les codes octets Java (tm). Le compilateur peut également générer des fichiers de classe. D'autres outils de développement Java de classpath sont inclus dans ce package.

Le paquet contient également une collection de scripts wrapper et de liens symboliques. Il est conçu pour fournir une interface de type Java-SDK au jeu d'outils GCJ.

C'était une alternative open source au compilateur Oracle Java à source fermée. Il semble être en grande partie obsolète et obsolète (non mis à jour), voir les liens ci-dessous (en particulier les dernières mises à jour sur la page d'accueil de GCJ).

Informations sur le package

Le compilateur Java (GCJ) de GNU est-il mort? - débordement de pile
Page d'accueil de GCJ sur gnu.org (Mise à jour: le lien a disparu, mais le wiki de GCJ est toujours disponible

openjdk-6-jdk

(openjdk-7-jdk est identique, mais pour Java 7)

Une version open source de la plate-forme Java.
À partir du Wiki :

L'objectif principal du projet OpenJDK est de produire une implémentation open source de la plate-forme Java SE (6 et 7). C'est la version par défaut de Java qu'Ubuntu utilise et la plus facile à installer.

Résumé du paquet:

OpenJDK est un environnement de développement permettant de créer des applications, des applets et des composants à l'aide du langage de programmation Java.

Les packages sont construits à l'aide du support de construction d'IcedTea et des correctifs du projet IcedTea.

Informations sur le package


De plus, Oracle Java (car il ne figure pas dans les dépôts par défaut) n'est pas mentionné dans votre question.

Oracle-Java7-installer

(nom du paquet provenant de Web Up8 PPA , distribué par Oracle dans le fichier .tar.gz)

Implémentation "officielle" de source fermée de Java par Oracle (anciennement Sun). Non hébergé dans le repos officiel en raison de problèmes de licence. Il a été mis à disposition par Web Up8 sous forme de script qui le télécharge et l’installe pour vous.

Comment installer - Web Up8

16
kiri

J'ai eu le même problème. Ce que j’ai trouvé c’est qu’ils ont des différences entre eux.

default-jdk et openjdk sont plus similaires car ils ont le même code _ Java API. Mais la différence est dans le plate-forme cible.

  • openjdk: Est le plus stable un. Il a été conçu pour toutes les plateformes . Il vise essentiellement Open-source plates-formes.

  • default-jdk: Is n'est pas stable . Il a été conçu en visant certaines plates-formes cibles . Il s’agit essentiellement de cibler: Fermé . (Était plus tard disponible pour Open-Source) Les JRE sont dans cela.

Mais d'autres sont totalement différents: Ils sont seulement des compilateurs. Ils étaient connus pour venir car, au début, Java n'était pas disponible pour Open-Source. Seuls les compilateurs Cetain ont été publiés pour des choses comme Eclipse.

  • gcj -jdk: (compilateur GNU pour Java). C'est un compilateur pour Java dans GNU. (Utilisé par Java)

  • ecj: (Eclipse Java Compilateur) Est-ce que le compilateur Java utilisé par Eclipse.

Cet ecj n'est pas une CJE, ce qui est Java Toolkit du calcul évolutif

4
user224082