Dove trovare il codice sorgente JDK Java? [chiuso]


153

Vorrei vedere cosa fa un metodo nell'API Java. Quindi voglio il codice sorgente JDK. Prima di reinstallare Linux avevo il src.zippacchetto con dentro tutto il codice sorgente ufficiale. Ho dovuto dire a Eclipse dove si trova questo file e ho potuto vedere il codice. Ma ora non ho più il file ...

Quindi la domanda è: dove posso trovarlo?


16
Ho sempre trovato il src.zipfile che contiene l'API Java pubblica nella directory di installazione di JDK. È quello che stai cercando (ho usato principalmente Windows, quindi forse la distribuzione Linux non ce l'ha).
Ash,

16
Questo è ridicolo che questa domanda sia # 3 su Google quando si cerca la fonte JDK. # 1 e # 2 sono collegamenti Oracle che NON dispongono di collegamenti al codice sorgente. Ricevo sempre questa domanda durante l'installazione di JDK. Oracle per favore.
Andrzej Rehmann,

4
src.zip è il bundle di origine solo per l'API principale. Non ci sono fonti disponibili pubblicamente per l'intero Java SE di Oracle, alcune porzioni sono di tipo chiuso. Tuttavia, a seconda della piattaforma, è possibile installare e utilizzare sul binario OpenJDK con fonti disponibili al 100%. Per fonti: vai su openjdk.java.net e clona un repository di fonti per la versione di cui hai bisogno. Per i binari: alcuni fornitori forniscono tali binari, incluso IcedTea per Linux.
Ivan Krylov

1
@Hoto, uso Java dal 1996 e mi sto strappando i capelli cercando di trovare l'oracolo src.zip per JDK7. Questo è incredibilmente stupido. Dov'è? Non è mai stato così difficile. Nota, non voglio OpenJDK.

2
@Ash, trovavo sempre anche src.zip nella directory di installazione. Lo estrarresti quindi in una directory ./src/, e tutto andava bene. Ma non è lì adesso. IN FATTO, il readme JDK 1.7 indica che dovrebbe essere presente un file src.zip. E non c'è. Questo è esasperante.

Risposte:


128

Non hai detto quale versione desideri, ma un archivio del codice sorgente JDK 8 può essere scaricato qui , insieme a JDK 7 e JDK 6 .

Inoltre puoi sfogliare o clonare i repository Mercurial: 8 , 7 , 6 .


1
Sì; diciamo che ne voglio 6 e poi su quella pagina di download, cosa devo scaricare? Il grande file jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? L'ho già scaricato. Ma non contiene il codice sorgente.
Martijn Courteaux,

3
@Martijn: hai provato a scaricare il file jar grande e quindi a leggere il file README al suo interno? Fondamentalmente hai appena eseguito con java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Estrarrà la fonte.
Jon Skeet,

2
Sì l'ho fatto. E l'ho estratto come hai scritto. Ma non c'è jar o zip sorgente.
Martijn Courteaux,

1
Volevo solo aggiungere che l'attuale posto (2013) è ora jdk7.java.net che reindirizza a OTN per eventuali download.
Kedar Mhaswade,

3
Jason C

32

Probabilmente hai già ottenuto il codice sorgente con JDK, si tratta di trovare dove si trova. Nel caso in cui la cartella JDK non contenga il codice sorgente:

sudo apt-get install openjdk-7-source

Gente OSX, cerca nelle formule homebrew.

In Ubuntu, il comando sopra metterebbe il tuo file souce sotto: / usr / lib / jvm / openjdk-7 /

La buona notizia è che Eclipse ti porterà già lì (Come associare Eclipse al codice sorgente Java):

Segui i pulsanti arancioni

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


16

Purtroppo, al momento della stesura di questo documento, DESPITE il loro readme di documentazione, non c'è src.zip nelle directory di installazione di JDK 7 o 8 quando scarichi la versione di Windows .

Nota: forse questo accade perché molti di noi in realtà non eseguono l'installazione .exe, ma invece lo estraggono. Molti di noi non eseguono l'installazione Java (l'installazione completa di Windows) per motivi di sicurezza ... vogliamo solo che JDK metta da parte un modo in cui i potenziali virus non riescano a trovarlo.

Ma la loro politica per quanto riguarda le finestre .exe (qualunque esso sia veramente) è infatti noci, TUTTAVIA , lo src.zip NON esistono nella installazione di Linux (un .tar.gz). Esistono diversi modi per estrarre un .tar e un .gz e preferisco l'utilità gratuita "7Zip".

  1. scarica Linux .tar.gz a 64 bit
  2. usa 7zip per decomprimere .tar.gz in un .tar
  3. usa 7zip per estrarre .tar nella directory di installazione
  4. src.zip ti aspetterà nella directory di installazione.
  5. estrailo e posizionalo dove preferisci.

Oracle, questo è davvero oltre lo stupido.


3
Oracle JDK8 (almeno 1.8.60) aveva src.zip per me su Windows. Tuttavia, Eclipse non l'ha raccolto di default.
milletron,

@milletron, anch'io l'ho notato in una recente versione di Windows. Ho la sensazione che qualcosa si sia rotto nelle loro finestre per scaricare la produzione di immagini per un certo periodo di tempo prima. Forse correlato alla differenza di terminazione di linea in b / n unix (LF) e windows (CRLF)?

Questo è quello che dovevo fare anche per Java 9.
Lii

11

Ho avuto questo problema con il mio Ubuntu.

Tutto quello che dovevo fare per ottenere fonti per la mia installazione di Java era:

sudo apt-get install sun-java6-source 

Su Ubuntu 14.04:E: Unable to locate package sun-java6-source
Nateowami il

8

Il JDK 1.6 che sto attualmente usando su OSX Mountain Lion non è stato fornito con uno dei src.zipdue, e per quanto ne so non esiste più un OSD JDK supportato per 1.6 disponibile.

Quindi ho scaricato il sorgente OpenJDK (usando i collegamenti dalla risposta accettata (+1)) quindi ho eseguito:

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 *

(i nomi dei file e i percorsi possono variare ...)

Associalo src.jaralla piattaforma Java appropriata nel tuo IDE e dovresti essere pronto per partire.

Esistono alcune discrepanze tra l'origine OpenJDK e il JDK attualmente in esecuzione (i numeri di riga non corrispondono nel debugger, per uno), ma se tutto ciò che desideri è un file zip / jar a cui indirizzare l'IDE per il relativo in pochi casi è necessario sbirciare un po 'di codice per capire come funziona qualcosa, quindi questo dovrebbe fare il trucco.


1
grazie, ne avevo bisogno mentre usavo mac. non esistono istruzioni chiare sull'ultimo sistema operativo e su come afferrare la fonte. (parlano tutti del download di aggiornamenti che non includono l'origine o il download dall'oracolo ma è tutto vago o errato in un modo o nell'altro)
dtc

1
Volevo solo sottolineare che questo è il modo giusto di farlo, perché come ha detto @dtc, ogni altra istruzione là fuori è errata o viziata. Fatto questo con IntelliJ 15 su un progetto Scala, ha funzionato perfettamente. Grazie @ Signor!
mjuarez,

src.jar non è una fonte completa. Ad esempio, non contiene la fonte di javax.net
Kannan Ramamoorthy,

4

Questo file è contenuto nel download JDK standard . Anche il tuo sistema Linux probabilmente ha JDK nel repository. Nel mio Ubuntu Linux il file si trova qui: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip


Aha! Puoi pubblicare quali pacchetti hai installato per la tua VM Java e JDK, per favore. Perché non ho quella cartella.
Martijn Courteaux,

4

In JDK 8 la fonte può essere trovata in /src.zip. Ora in alcune versioni intermedie questo zip mancava ma è di nuovo disponibile.inserisci qui la descrizione dell'immagine

assicurati di selezionare anche l'origine dalla procedura guidata di installazione.



2

Bene, ho aperto il terminale sul mio Mac e ho scritto: "echo $ JAVA_HOME" quindi ho preso la directory, sono andato lì e ho trovato src.zip


1

Sì!! Fatto!

Ho scaricato Java Developer Kit (JDK) da sun.com per Linux. C'era src.zip in. Ma prima ho disinstallato tutti i pacchetti Java con synaptic.


nota che sotto Linux non è davvero necessario essere root per installare Java. Installo sempre (da più di dieci anni) Java come utente non root sui miei sistemi Un * x (quindi, no, non uso apt-get / synaptic / qualunque cosa).
Sintassix3rr0r

1

Il link ufficiale non offre più il codice sorgente originale. Il link ufficiale e le ricerche casuali su Google ti faranno entrare con jdk aperto. Open jdk causa problemi con Android Build a meno che i file di script build non vengano modificati. Il pacchetto originale può essere trovato qui:

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

Questo repository ha ancora il pacchetto sun-java6-source. Credito: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.