Quelle est la différence entre les cinq versions de Java sur cette page pour Ubuntu?

9

Je souhaite installer Java sur mon ordinateur afin de pouvoir développer des programmes et je suis tombé sur cette page sur Java dans la documentation de la communauté Ubuntu . Ça dit:

Java est une technologie d'Oracle (anciennement: Sun Microsystems). Il existe plusieurs implémentations, dont cinq seront discutées ici:

  • OpenJDK : Le principal objectif 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.
  • Oracle (Sun) Java 6 : Oracle (Sun) Java 6 est l'implémentation de référence pour Java 6.
  • Oracle Java 7 : Oracle Java 7 est l'implémentation de référence pour Java 7.
  • IBM Java : IBM Java est la solution Java préférée sur les machines PowerPC. Il s'agit d'une réimplémentation avec un compilateur Just-In-Time. Il n'est disponible que sur le site Web d'IBM.
  • GNU Compiler : Un compilateur Java créé par GNU. Seuls les développeurs devraient avoir à installer cela.

J'ai lu le contenu mais je suis toujours un peu confus. Sont-ils tous des versions différentes de JDK? Sinon, alors quoi?

Et lequel préférez-vous?

Programmation Noob
la source

Réponses:

6

Sont-ils tous des versions différentes de JDK? Sinon, alors quoi?

Ce sont différentes implémentations de Java / kits de développement pour Java (JDK). Java est une plate-forme standard, et tous ces éléments implémentent cette plate-forme à leur manière. Parmi ceux-ci:

  • OpenJDK et GNU Compiler sont les seuls à être open source. Je les préfère généralement - la facilité d'installation ( apt-getou Software Center) est un facteur important.
    • OpenJDK en particulier est dérivé principalement du code source Java "officiel" qu'Oracle / Sun open source; il est soutenu par Oracle.
  • Oracle Java 6 et 7 sont "le" Java, si vous voulez, de la société qui a inventé Java (c'était Sun, mais Oracle les a achetés il y a quelque temps). C'est pourquoi elles sont appelées implémentations de référence. Vous voudrez peut-être les utiliser si vous utilisez également Oracle JDK sur une autre plate-forme ou si OpenJDK vous pose des problèmes.
    • Les 6 et 7 se réfèrent aux versions de la langue / plateforme. 7 est plus récent et a plus de fonctionnalités, mais a été moins testé; 6 est extrêmement mature et stable. Je préfère 6 si vous débutez.
  • Contrairement au wiki, IBM crée des JDK / JRE pour toutes les plates-formes, bien que le leur soit peut-être le seul pour le PowerPC.

Si vous débutez en programmation, presque n'importe lequel d'entre eux conviendra parfaitement. Optez pour OpenJDK juste parce que c'est facile à installer.

La seule expérience que j'ai pour les différencier est la compilation dans un environnement à faibles ressources (128-192 Mo de RAM - un VPS); J'ai trouvé que Oracle Java 6 JDK fonctionnait mieux pour un programme (c'est-à-dire qu'il avait réussi) et IBM Java 6 JDK pour un autre ...

ish
la source
1
Juste une correction rapide - Pour Java 7, l'implémentation de référence est OpenJDK, pas Oracle JDK. Et oui, IBM a des implémentations pour toutes les principales plates-formes à l'exception de Solacle de Oracle (Sun).
intelekt
2

Java Language and Runtime Environment est une spécification. Tous ces packages sont des implémentations différentes de la même spécification.

Et lisez plus ici: /programming/1977238/why-should-i-use-the-oracle-jdk-over-the-openjdk-or-vice-versa

Habituellement, vous devez simplement utiliser openJDK car il fonctionne aussi bien que Oracles JDK mais est open source, vous n'avez donc aucun problème avec les licences. Plus d'informations sur http://openjdk.java.net/

Janning
la source
1

Il explique ce que chacun est sur la page mais essentiellement ce sont tous des java d'Orcale juste développés par différents groupes.

  • OpenJDK est le développement open source de l'édition Java d'Oracles.
  • Java 6 et 7 ne sont que des versions de l'édition standard d'Oracles Java. & est le plus récent et sorti l'année dernière en juin ou juillet je pense.
  • La version IBM a été principalement utilisée pour les PowerPC, car ses états n'auront probablement pas beaucoup d'importance pour vous à moins que vous n'ayez un processeur PowerPC.
  • Le compilateur GNU est destiné aux développeurs qui codent en Java. C'est juste un compilateur pour java. Si vous ne savez pas ce que c'est, alors vous n'en avez probablement pas besoin, sauf si vous voulez en savoir plus sur le développement Java.

J'utilise OpenJDK car il fonctionne mieux avec Minecraft. Aucune autre raison ha.

Facture

LinuxBill
la source
1

Pour autant que je sache, openJDK est presque le même que Sun JDK, la principale différence est qu'il est open source.Vous ne pouvez pas utiliser un IBM JDK si vous êtes un utilisateur de PC car il est restreint sur PowerPC.Le gcj n'est pas considéré comme un bon choix pour moi car il semble encore immature.

Hongxu Chen
la source
0

Cela mettra probablement en colère la plupart des gens les plus FLOSS, mais voici ma courte réponse.

Oracle a acquis Sun, Oracle (Sun) Java 6 n'est que l'ancienne version d'Oracle Java 7. Cela étant dit. Sauf si vous avez une très bonne raison de ne pas utiliser la version d'Oracle. Tout le reste est une tentative de reproduire ce qu'Oracle a fait et aucun d'eux n'est aussi bon.

En ce qui concerne la dégradation de la qualité. GNU Java est la pire tentative de la JVM que j'aie jamais vue ... sauf si vous appréciez les plantages fréquents ... ne l'utilisez pas. IBM Java - jamais utilisé honnêtement, donc pas d'opinion OpenJDK - si vous utilisez une implémentation open source de la JVM, j'utiliserais OpenJDK et utiliserais la version 7.x.

csgeek
la source
0

FWIW, j'ai eu moins de problèmes avec Oracle / Sun Java que toute autre version. OpenJDK fonctionne la plupart du temps. Je n'ai jamais réussi à faire fonctionner GNU Java. IBM Java semble bien, mais je n'ai pas beaucoup d'expérience avec lui.

WebUpd8te a un PPA qui facilite l'installation via apt-get. À moins que vous n'ayez une raison d'utiliser une version différente, comme les licences, j'irais avec Oracle Java.

JimBeam823
la source