Où trouver le code source Java JDK? [fermé]

153

Je voudrais voir ce que fait une méthode dans l'API Java. Je veux donc le code source JDK. Avant de réinstaller Linux, j'avais le src.zippaquet avec tout le code source officiel. Je devais juste dire à Eclipse où se trouve ce fichier et je pouvais voir le code. Mais maintenant je n'ai plus le fichier ...

La question est donc: où puis-je le trouver?

Martijn Courteaux
la source
16
J'ai toujours trouvé le src.zipfichier contenant l'API Java publique dans le répertoire d'installation de JDK. Est-ce ce que vous recherchez (j'ai principalement utilisé Windows, donc peut-être que la distribution Linux ne l'a pas).
Cendres
16
Il est ridicule que cette question soit n ° 3 dans Google lors de la recherche d'une source JDK. # 1 et # 2 sont des liens Oracle qui n'ont PAS de liens de code source. Je passe toujours par cette question lors de l'installation de JDK. Oracle s'il vous plaît.
Andrzej Rehmann
4
src.zip est le bundle source pour l'API principale uniquement. Il n'y a pas de sources disponibles publiquement pour l'ensemble de Java SE d'Oracle, certaines parties sont des sources fermées. Cependant, selon la plate-forme, vous pouvez installer et utiliser le binaire OpenJDK avec 100% de sources disponibles. Pour les sources - rendez-vous sur openjdk.java.net et clonez un référentiel de sources pour la version dont vous avez besoin. Pour les binaires - quelques fournisseurs fournissent de tels binaires, y compris IcedTea pour Linux.
Ivan Krylov
1
@Hoto, j'utilise Java depuis 1996 et je m'arrache les cheveux en essayant de trouver l'oracle src.zip pour JDK7. C'est incroyablement stupide. WhereTF est-ce ???? Cela n'a jamais été aussi difficile. Remarque, je ne veux pas d'OpenJDK.
2
@Ash, j'avais l'habitude de toujours trouver un src.zip dans le répertoire d'installation également. Vous l'extrayiez ensuite dans un répertoire ./src/, et tout allait bien. Mais ce n'est pas là maintenant. EN FAIT, le fichier readme du JDK 1.7 indique qu'il devrait y avoir un src.zip présent. Et il n'y en a pas. C'est exaspérant.

Réponses:

128

Vous n'avez pas dit quelle version vous voulez, mais une archive du code source du JDK 8 peut être téléchargée ici , avec JDK 7 et JDK 6 .

De plus, vous pouvez parcourir ou cloner les référentiels Mercurial: 8 , 7 , 6 .

Jon Skeet
la source
1
Oui; disons que je veux 6 et puis sur cette page de téléchargement, que dois-je télécharger? Le gros dossier jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? J'ai déjà téléchargé celui-là. Mais ne contient pas le code source.
Martijn Courteaux
3
@Martijn: Avez-vous essayé de télécharger le gros fichier jar, puis de lire le README qu'il contient? En gros, vous venez de l'exécuter avec java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Il extraira la source.
Jon Skeet
2
Oui je l'ai fait. Et je l'ai extrait comme vous l'avez écrit. Mais il n'y a ni jar ni zip source.
Martijn Courteaux
1
Je voulais juste ajouter que l'emplacement actuel (2013) est maintenant jdk7.java.net qui redirige vers OTN pour tout téléchargement.
Kedar Mhaswade le
3
Pour la version 1.7, il y a aussi sourceforge.net/projects/jdk7src
Jason C
32

Il y a de fortes chances que vous ayez déjà le code source avec le JDK, il s'agit de savoir où il se trouve. Dans le cas où le dossier JDK ne contient pas le code source:

sudo apt-get install openjdk-7-source

OSX Folks, recherchez dans les formules homebrew.

Dans ubuntu, la commande ci-dessus placerait votre fichier souce sous: / usr / lib / jvm / openjdk-7 /

La bonne nouvelle est qu'Eclipse vous y emmènera déjà (Comment lier Eclipse au code source Java):

Suivez les boutons orange

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

Amertkara
la source
16

Malheureusement, au moment d'écrire ces lignes, MALGRÉ leur propre fichier readme de documentation, il n'y a pas de src.zip dans les répertoires d'installation de JDK 7 ou 8 lorsque vous téléchargez la version Windows .

Remarque: cela se produit peut-être parce que beaucoup d'entre nous n'exécutent pas le fichier install .exe, mais l'extraient à la place. Beaucoup d'entre nous n'exécutent pas l'installation Java (l'installation complète de Windows) pour des raisons de sécurité .... nous voulons juste que le JDK soit placé à un endroit où les virus potentiels ne peuvent pas le trouver.

Mais leur politique en ce qui concerne les fenêtres .exe (ce qu'il est vraiment) est en effet noix, CEPENDANT , le src.zip NE existons dans l'installation de Linux (un tar.gz). Il existe plusieurs façons d'extraire un .tar et un .gz, et je préfère l'utilitaire gratuit "7Zip".

  1. télécharger le Linux 64 bits .tar.gz
  2. utilisez 7zip pour décompresser le .tar.gz en .tar
  3. utilisez 7zip pour extraire le .tar dans le répertoire d'installation
  4. src.zip vous attendra dans ce répertoire d'installation.
  5. retirez-le et placez-le où vous le souhaitez.

Oracle, c'est vraiment stupide.


la source
3
Oracle JDK8 (1.8.60 au moins) avait le src.zip pour moi sur Windows. Cependant, Eclipse ne l'a pas ramassé par défaut.
milletron
@milletron, moi aussi je l'ai remarqué dans une récente version de Windows. J'ai le sentiment que quelque chose est tombé en panne dans la production d'images de téléchargement de Windows depuis un certain temps auparavant. Peut-être lié à la différence de terminaison de ligne b / w unix (LF) et windows (CRLF)?
C'est ce que j'avais à faire aussi pour Java 9.
Lii
11

J'ai eu ce problème avec mon Ubuntu.

Tout ce que j'avais à faire pour obtenir les sources de mon installation java était:

sudo apt-get install sun-java6-source 
Xorty
la source
Sur Ubuntu 14.04:E: Unable to locate package sun-java6-source
Nateowami
8

Le JDK 1.6 que j'utilise actuellement sur OSX Mountain Lion n'est pas venu avec un src.zipnon plus, et pour autant que je sache, il n'y a plus de JDK OSX pris en charge pour 1.6 disponible.

J'ai donc téléchargé la source OpenJDK (en utilisant les liens de la réponse acceptée (+1)) puis j'ai couru:

cd ~/Downloads
mkdir jdk6src
cd jdk6src
tar xf ../openjdk-6-src-b27-26_oct_2012.tar.gz
cd jdk/src/share/classes
jar cf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/src.jar *

(vos noms de fichiers et chemins peuvent varier ...)

Associez cela src.jarà la plate-forme Java appropriée dans votre IDE et vous devriez être prêt à partir.

Il y a quelques divergences entre la source OpenJDK et le JDK que j'exécute actuellement (les numéros de ligne ne correspondent pas dans le débogueur, par exemple), mais si tout ce que vous voulez, c'est un zip / jar vers lequel pointer votre IDE pour le relativement Dans quelques cas, vous devez jeter un coup d'œil à un code pour comprendre comment quelque chose fonctionne, alors cela devrait faire l'affaire.

MonsieurEd
la source
1
thx, j'en avais besoin lors de l'utilisation de mac. il n'y a pas d'instructions claires concernant le dernier système d'exploitation et comment récupérer la source. (ils parlent tous de télécharger des mises à jour qui n'incluent pas la source ou de télécharger depuis oracle mais tout est vague ou erroné d'une manière ou d'une autre)
dtc
1
Je voulais juste souligner que c'est la bonne façon de le faire, car comme @dtc l'a dit, toutes les autres instructions sont erronées ou périmées. J'ai fait cela avec IntelliJ 15 sur un projet Scala, cela a parfaitement fonctionné. Merci @MisterEd!
mjuarez
src.jar n'est pas une source complète. Par exemple, il ne contient pas la source de javax.net
Kannan Ramamoorthy
4

Ce fichier est contenu dans le téléchargement standard du JDK . De plus, votre système Linux a probablement JDK dans le référentiel. Dans mon fichier Ubuntu Linux se trouve ici: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip

vbezhenar
la source
Ah! Pouvez-vous publier les packages que vous avez installés pour votre machine virtuelle Java et JDK, s'il vous plaît. Parce que je n'ai pas ce dossier.
Martijn Courteaux
4

Dans JDK 8, la source peut être trouvée dans /src.zip. Maintenant, dans certaines versions intermédiaires, ce zip manquait, mais il est encore disponible.entrez la description de l'image ici

assurez-vous de sélectionner également la source dans l'assistant d'installation.

dvsakgec
la source
2

Eh bien, j'ai ouvert le terminal dans mon Mac et tapez: "echo $ JAVA_HOME" puis j'ai obtenu le répertoire, je suis allé là-bas et j'ai trouvé src.zip

petery
la source
1

Oui!! Je l'ai!

J'ai téléchargé le Java Developer Kit (JDK) sur sun.com pour Linux. Il y avait src.zip dedans. Mais j'ai d'abord désinstallé tous les paquets Java avec synaptic.

Martijn Courteaux
la source
notez que sous Linux, il n'est vraiment pas nécessaire d'être root pour installer Java. J'installe toujours (depuis plus de dix ans) Java en tant qu'utilisateur non root sur mes systèmes Un * x (donc, non, je n'utilise pas apt-get / synaptic / peu importe).
SyntaxeT3rr0r
1

Le lien officiel n'offre plus le code source d'origine. Le lien officiel et les recherches google occasionnelles vous permettront d'accéder au jdk ouvert. Open jdk pose des problèmes avec la version Android à moins que les fichiers de script de construction ne soient modifiés. L'emballage d'origine se trouve ici:

sudo add-apt-repository "deb http://ppa.launchpad.net/ferramroberto/java/ubuntu oneiric main"

Ce dépôt a toujours le package sun-java6-source. Crédit: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

Jitendra Kulkarni
la source