Wo finde ich Java JDK-Quellcode? [geschlossen]

153

Ich würde gerne sehen, was eine Methode in der Java-API tut. Ich möchte also den JDK-Quellcode. Bevor ich Linux neu installierte, hatte ich das src.zipPaket mit dem gesamten offiziellen Quellcode. Ich musste Eclipse nur sagen, wo sich diese Datei befindet und ich konnte den Code sehen. Aber jetzt habe ich die Datei nicht mehr ...

Die Frage ist also: Wo finde ich es?

Martijn Courteaux
quelle
16
Ich habe immer die src.zipDatei gefunden, die die öffentliche Java-API im JDK-Installationsverzeichnis enthält. Ist es das, wonach Sie suchen (ich habe hauptsächlich Windows verwendet, vielleicht hat die Linux-Distribution es nicht).
Ash
16
Es ist lächerlich, dass diese Frage bei der Suche nach JDK-Quellen die Nummer 3 in Google ist. Nr. 1 und Nr. 2 sind Oracle-Links, die KEINE Quellcode-Links enthalten. Ich gehe diese Frage immer durch, wenn ich JDK installiere. Oracle bitte.
Andrzej Rehmann
4
src.zip ist das Quellpaket nur für die Kern-API. Es gibt keine öffentlich verfügbaren Quellen für die gesamte Java SE von Oracle, einige Teile sind Closed Source. Abhängig von einer Plattform können Sie jedoch OpenJDK-Binärdateien mit 100% verfügbaren Quellen installieren und verwenden. Für Quellen - gehen Sie zu openjdk.java.net und klonen Sie ein Quellenrepository für die Version, die Sie benötigen. Für Binärdateien - Einige Anbieter bieten solche Binärdateien an, einschließlich IcedTea für Linux.
Ivan Krylov
1
@Hoto, ich benutze Java seit 1996 und ziehe mir die Haare aus, um das Orakel src.zip für JDK7 zu finden. Das ist unglaublich dumm. Wo ist es? Es war noch nie so schwierig. Beachten Sie, dass ich OpenJDK nicht möchte.
2
@Ash, ich habe immer auch eine src.zip im Installationsverzeichnis gefunden. Sie würden es dann in ein ./src/-Verzeichnis extrahieren, und alles war gut. Aber jetzt ist es nicht da. Tatsächlich ist die JDK 1.7 Readme geben an, dass es sollte ein src.zip vorhanden sein. Und das gibt es nicht. Das ist ja zum verrückt werden.

Antworten:

128

Sie haben nicht angegeben, welche Version Sie möchten, aber ein Archiv des JDK 8-Quellcodes kann hier zusammen mit JDK 7 und JDK 6 heruntergeladen werden .

Zusätzlich können Sie die Mercurial-Repositorys durchsuchen oder klonen: 8 , 7 , 6 .

Jon Skeet
quelle
1
Ja; Nehmen wir an, ich möchte 6 und was muss ich dann auf dieser Download-Seite herunterladen? Die große Akte jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? Ich habe das schon heruntergeladen. Enthält aber nicht den Quellcode.
Martijn Courteaux
3
@Martijn: Haben Sie versucht, die große JAR-Datei herunterzuladen und dann die darin enthaltene README-Datei zu lesen? Grundsätzlich läuft es einfach mit java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Es wird die Quelle extrahieren.
Jon Skeet
2
Ja, ich tat es. Und ich habe es extrahiert, wie Sie geschrieben haben. Aber es gibt kein Quellglas oder keinen Reißverschluss.
Martijn Courteaux
1
Ich wollte nur hinzufügen, dass der aktuelle Ort (2013) jetzt jdk7.java.net ist, der für alle Downloads zu OTN umleitet.
Kedar Mhaswade
3
Für 1.7 gibt es auch sourceforge.net/projects/jdk7src
Jason C
32

Wenn Sie den Quellcode bereits mit dem JDK erhalten haben, müssen Sie herausfinden, wo er sich befindet. Falls der JDK-Ordner nicht den Quellcode enthält:

sudo apt-get install openjdk-7-source

OSX-Leute, suchen Sie in Homebrew-Formeln.

In Ubuntu würde der obige Befehl Ihre Quelldatei unter folgender Adresse ablegen: / usr / lib / jvm / openjdk-7 /

Eine gute Nachricht ist, dass Eclipse Sie bereits dorthin bringt (So binden Sie Eclipse an den Java-Quellcode):

Folgen Sie den orangefarbenen Tasten

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

amertkara
quelle
16

Leider befindet sich zum Zeitpunkt des Schreibens der Windows-Version kein src.zip in den JDK 7- oder 8-Installationsverzeichnissen .

Hinweis: Möglicherweise geschieht dies, weil viele von uns die install .exe nicht ausführen, sondern extrahieren. Viele von uns führen die Java-Installation (die vollständige Windows-Installation) aus Sicherheitsgründen nicht aus. Wir möchten nur, dass das JDK an einem Ort platziert wird, an dem potenzielle Viren es nicht finden können.

Aber ihre Politik in Bezug auf die Fenster .exe (was auch immer es wirklich ist) ist in der Tat Nüsse, JEDOCH , die src.zip DOES exist im Linux installieren (ein .tar.gz). Es gibt mehrere Möglichkeiten, eine .tar- und eine .gz-Datei zu extrahieren, und ich bevorzuge das kostenlose Dienstprogramm "7Zip".

  1. Laden Sie die Linux 64-Bit-Datei .tar.gz herunter
  2. Verwenden Sie 7zip, um die .tar.gz in eine .tar zu dekomprimieren
  3. Verwenden Sie 7zip, um die .tar-Datei in das Installationsverzeichnis zu extrahieren
  4. src.zip wartet in diesem Installationsverzeichnis auf Sie.
  5. Ziehen Sie es heraus und platzieren Sie es, wo Sie möchten.

Oracle, das ist wirklich mehr als dumm.


quelle
3
Oracle JDK8 (mindestens 1.8.60) hatte die src.zip für mich unter Windows. Eclipse hat es jedoch nicht standardmäßig aufgenommen.
Milletron
@milletron, ich habe es auch in einer kürzlich erschienenen Windows-Version bemerkt. Ich habe das Gefühl, dass etwas in ihrer Windows-Download-Image-Produktion für einige Zeit zuvor zusammengebrochen ist. Vielleicht im Zusammenhang mit dem Unterschied zwischen Leitungsabschluss s / w Unix (LF) und Windows (CRLF)?
Dies ist, was ich auch für Java 9 tun musste.
Lii
11

Ich hatte dieses Problem mit meinem Ubuntu.

Alles, was ich tun musste, um Quellen für meine Java-Installation zu erhalten, war:

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

Das JDK 1.6, das ich derzeit unter OSX Mountain Lion verwende, wurde ebenfalls nicht mitgeliefert src.zip, und soweit ich das beurteilen kann, ist kein unterstütztes OSX JDK für 1.6 mehr verfügbar.

Also habe ich die OpenJDK-Quelle heruntergeladen (unter Verwendung der Links aus der akzeptierten Antwort (+1)) und dann ausgeführt:

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 *

(Ihre Dateinamen und Pfade können variieren ...)

Associate , dass src.jarmit der entsprechenden Java - Plattform in Ihrem IDE und Sie sollten gut sein zu gehen.

Es gibt einige Diskrepanzen zwischen der OpenJDK-Quelle und dem JDK, das ich gerade verwende (Zeilennummern stimmen im Debugger nicht überein), aber wenn Sie nur eine Zip / JAR-Datei wünschen, auf die Ihre IDE relativ verweist In einigen Fällen müssen Sie sich einen Code ansehen, um zu verstehen, wie etwas funktioniert. Dann sollte dies den Trick tun.

MisterEd
quelle
1
Danke, ich brauchte das, während ich Mac benutzte. Es gibt keine klaren Anweisungen zum neuesten Betriebssystem und zum Abrufen der Quelle. (Sie alle sprechen über das Herunterladen von Updates, die nicht die Quelle enthalten, oder das Herunterladen von Oracle, aber es ist alles vage oder fehlerhaft auf die eine oder andere Weise)
dtc
1
Ich wollte nur hervorheben, dass dies der richtige Weg ist, denn wie @dtc sagte, ist jede andere Anweisung da draußen fehlerhaft oder veraltet. Hat dies mit IntelliJ 15 bei einem Scala-Projekt gemacht, es hat perfekt funktioniert. Danke @MisterEd!
Mjuarez
src.jar ist keine vollständige Quelle. Zum Beispiel enthält es nicht die Quelle von javax.net
Kannan Ramamoorthy
4

Diese Datei ist im Standard-JDK-Download enthalten . Auch Ihr Linux-System hat wahrscheinlich JDK im Repository. In meiner Ubuntu-Linux-Datei befindet sich hier: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip

vbezhenar
quelle
Aha! Können Sie bitte veröffentlichen, welche Pakete Sie für Ihre Java VM und Ihr JDK installiert haben? Weil ich diesen Ordner nicht habe.
Martijn Courteaux
4

In JDK 8 finden Sie die Quelle in /src.zip. In einigen Zwischenversionen fehlte dieser Reißverschluss, ist aber wieder verfügbar.Geben Sie hier die Bildbeschreibung ein

Stellen Sie sicher, dass Sie im Installationsassistenten auch die Quelle auswählen.

dvsakgec
quelle
2

Nun, ich habe das Terminal auf meinem Mac geöffnet und Folgendes eingegeben: "echo $ JAVA_HOME", dann habe ich das Verzeichnis erhalten, bin dorthin gegangen und habe src.zip gefunden

Petery
quelle
1

Ja!! Verstanden!

Ich habe das Java Developer Kit (JDK) von sun.com für Linux heruntergeladen. Es gab src.zip in. Aber zuerst habe ich alle Java-Pakete mit synaptic deinstalliert.

Martijn Courteaux
quelle
Beachten Sie, dass unter Linux kein Root erforderlich ist, um Java zu installieren. Ich installiere Java immer (seit mehr als zehn Jahren) als Nicht-Root-Benutzer auf meinen Un * x-Systemen (also nein, ich verwende apt-get / synaptic / Whatever nicht).
SyntaxT3rr0r
1

Der offizielle Link bietet nicht mehr den ursprünglichen Quellcode. Der offizielle Link und die gelegentliche Google-Suche bringen Sie mit Open JDK. Open JDK verursacht Probleme mit Android Build, es sei denn, die Build-Skriptdateien werden geändert. Die Originalverpackung finden Sie hier:

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

Dieses Repo enthält noch das Paket sun-java6-source. Bildnachweis: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

Jitendra Kulkarni
quelle