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

23

Ce matin, j'ai essayé d'installer quelque chose et je 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.

rɑːdʒɑ
la source
1
Il y a aussi des Jikes.
Pacerier

Réponses:

16

default-jre

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

Ce package pointe vers le runtime Java ou un runtime compatible Java recommandé pour l'architecture i386, qui est openjdk-7-jre pour i386.

Informations sur le
package Dépendances du package (impertinent)

ecj

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

Ce package fournit une version autonome du compilateur Eclipse JDT qui est distribué dans le cadre d'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 package (impertinent)

gcj-4.6-jdk

(gcj-4.7-jdk est le même mais pour Java 7)

Il s'agit d'une interface avec le compilateur GCC pour compiler nativement le bytecode Java et les fichiers source.

GCJ est une interface pour le compilateur GCC qui peut compiler nativement à la fois les fichiers source Java (tm) et les fichiers de bytecode. 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 d'encapsulation et de liens symboliques. Il est destiné à fournir une interface de type Java-SDK à l'ensemble d'outils GCJ.

Il était censé être une alternative open source au compilateur Java Oracle à source fermée. Il semble être principalement obsolète et obsolète (non mis à jour) maintenant, 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 de GNU (GCJ) est-il mort? -
Page d'accueil de Stack Overflow GCJ sur gnu.org (Mise à jour: Le lien a disparu maintenant, mais le wiki GCJ est toujours disponible

openjdk-6-jdk

(openjdk-7-jdk est le même mais pour Java 7)

Une version open source de la plate-forme Java.
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). Il s'agit de la version par défaut de Java qu'Ubuntu utilise et est la plus facile à installer.

Résumé du package:

OpenJDK est un environnement de développement pour la création d'applications, d'applets et de composants à l'aide du langage de programmation Java.

Les packages sont créés à l'aide du support de génération IcedTea et des correctifs du projet IcedTea.

Informations sur le package


En outre, Oracle Java n'est pas mentionné dans votre question (car il n'est pas dans le référentiel par défaut), que je vais énumérer ci-dessous pour être complet

oracle-java7-installer

(nom du package de Web Up8 PPA , distribué par Oracle dans .tar.gz)

L'implémentation «officielle» de Java en source fermée par Oracle (anciennement Sun). Non hébergé dans les dépôts officiels 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

kiri
la source
cela signifie-t-il que l'installation d'ecj installera Eclipse + Java?
rɑːdʒɑ
quel est le but de GCJ en particulier?
rɑːdʒɑ
@rajagenupula Voir mes modifications ↑↑
kiri
4

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

Les deux default-jdket openjdksont plus similaires car ils ayant les mêmes codes API java. Mais la différence réside dans la plate-forme cible.

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

  • default-jdk: n'est pas stable . Il a été conçu pour certaines plateformes cibles . Il cible essentiellement les plates-formes fermées (était plus tard disponible pour Open-Source).

Mais d'autres sont totalement différents: ce ne sont que des compilateurs . Ils étaient connus parce que, au début, Java n'était pas disponible pour l'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 Compiler) Est le compilateur Java utilisé par Eclipse.

Cet ecj n'est pas ECJ qui est Java Evolutionary Computation Toolkit


la source
Merci de votre visite, veuillez regarder les commentaires ci-dessus que j'ai faits sur les autres réponses et essayez de les résoudre s'il vous plaît.
rɑːdʒɑ