Gdzie znaleźć kod źródłowy Java JDK? [Zamknięte]


153

Chciałbym zobaczyć, co robi metoda w Java API. Więc chcę mieć kod źródłowy JDK. Zanim ponownie zainstalowałem Linuksa, miałem src.zippakiet z całym oficjalnym kodem źródłowym. Musiałem tylko powiedzieć Eclipse, gdzie jest ten plik i mogłem zobaczyć kod. Ale teraz nie mam już pliku ...

Pytanie brzmi: gdzie mogę to znaleźć?


16
Zawsze znajdowałem src.zipplik, który zawiera publiczne API Java w katalogu instalacyjnym JDK. Czy tego właśnie szukasz (używałem głównie systemu Windows, więc może dystrybucja Linuksa go nie ma).
Ash

16
To śmieszne, że to pytanie jest na trzecim miejscu w Google podczas wyszukiwania źródła JDK. # 1 i # 2 to łącza Oracle, które NIE mają odsyłaczy do kodu źródłowego. Zawsze odpowiadam na to pytanie podczas instalacji JDK. Wyrocznia, proszę.
Andrzej Rehmann

4
src.zip jest pakietem źródłowym wyłącznie dla podstawowego interfejsu API. Nie ma publicznie dostępnych źródeł całej Java SE od Oracle, niektóre fragmenty są źródłami zamkniętymi. Jednak w zależności od platformy możesz zainstalować i używać na binarnym OpenJDK z dostępnymi 100% źródłami. W przypadku źródeł - przejdź do openjdk.java.net i sklonuj repozytorium źródeł dla potrzebnej wersji. W przypadku plików binarnych - kilku dostawców udostępnia takie pliki binarne, w tym IcedTea dla systemu Linux.
Ivan Krylov

1
@Hoto, używam Javy od 1996 roku i wyrywam sobie włosy, próbując znaleźć plik Oracle src.zip dla JDK7. To niewiarygodnie głupie. Gdzie to jest TF ???? Kiedyś to nigdy nie było takie trudne. Uwaga, nie chcę OpenJDK.

2
@Ash, zawsze znajdowałem plik src.zip w katalogu instalacyjnym. Następnie rozpakowałbyś go do katalogu ./src/ i wszystko było dobrze. Ale teraz go tam nie ma. W rzeczywistości plik Readme JDK 1.7 wskazuje, że powinien istnieć plik src.zip. I nie ma. To jest szalone.

Odpowiedzi:


128

Nie powiedziałeś, którą wersję chcesz, ale archiwum kodu źródłowego JDK 8 można pobrać tutaj , wraz z JDK 7 i JDK 6 .

Dodatkowo możesz przeglądać lub klonować repozytoria Mercurial: 8 , 7 , 6 .


1
Tak; powiedzmy, że chcę 6, a następnie na tej stronie pobierania, co mam do pobrania? Duży plik jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? Już go pobrałem. Ale nie zawiera kodu źródłowego.
Martijn Courteaux

3
@Martijn: Czy próbowałeś pobrać duży plik jar, a następnie przeczytać plik README w nim? Zasadniczo po prostu go uruchamiasz java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Wyodrębni źródło.
Jon Skeet

2
Tak, zrobiłem to. Wyodrębniłem to tak, jak napisałeś. Ale nie ma w nim słoika źródłowego ani zipa.
Martijn Courteaux

1
Chciałem tylko dodać, że obecne (2013) miejsce to teraz jdk7.java.net, które przekierowuje do OTN w celu pobrania jakichkolwiek plików.
Kedar Mhaswade,

3
W wersji 1.7 jest też sourceforge.net/projects/jdk7src
Jason C

32

Szanse, że masz już kod źródłowy z JDK, to kwestia znalezienia, gdzie on się znajduje. W przypadku, gdy folder JDK nie zawiera kodu źródłowego:

sudo apt-get install openjdk-7-source

Ludzie z OSX, szukajcie formuł homebrew.

W systemie ubuntu powyższe polecenie umieściłoby twój plik źródłowy w: / usr / lib / jvm / openjdk-7 /

Dobra wiadomość jest taka, że ​​Eclipse już Cię tam zabierze (Jak powiązać Eclipse z kodem źródłowym Java):

Postępuj zgodnie z pomarańczowymi przyciskami

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj


16

Niestety, w chwili pisania tego tekstu, POMIMO ich własnego pliku readme dokumentacji, w katalogach instalacyjnych JDK 7 lub 8 nie ma pliku src.zip podczas pobierania wersji dla systemu Windows .

Uwaga: być może dzieje się tak, ponieważ wielu z nas w rzeczywistości nie uruchamia pliku instalacyjnego .exe, ale zamiast tego rozpakowuje go. Wielu z nas nie uruchamia instalacji Javy (pełnej instalacji systemu Windows) ze względów bezpieczeństwa ... chcemy po prostu, aby JDK umieścił miejsce, gdzie potencjalne wirusy nie mogą go znaleźć.

Ale ich polityka dotycząca okna .exe (cokolwiek to jest naprawdę) jest rzeczywiście orzechy, JEDNAK The src.zip NIE istnieją w linux zainstalować (a .tar.gz). Istnieje wiele sposobów wyodrębnienia plików .tar i .gz, a ja wolę darmowe narzędzie „7Zip”.

  1. pobierz 64-bitowy plik .tar.gz dla systemu Linux
  2. użyj 7zip, aby zdekompresować plik .tar.gz do .tar
  3. użyj 7zip, aby wyodrębnić plik .tar do katalogu instalacyjnego
  4. src.zip będzie czekał na Ciebie w tym katalogu instalacyjnym.
  5. wyciągnij go i umieść tam, gdzie chcesz.

Wyrocznio, to jest naprawdę głupie.


3
Oracle JDK8 (przynajmniej 1.8.60) miał dla mnie src.zip w systemie Windows. Eclipse nie odebrał jednak domyślnie.
milletron

@milletron, ja też zauważyłem to w ostatnim wydaniu systemu Windows. Mam wrażenie, że coś się zepsuło w ich produkcji obrazu do pobierania systemu Windows przez jakiś czas wcześniej. Być może jest to związane z różnicą w zakończeniu linii w unixie (LF) i oknach (CRLF)?

To właśnie musiałem zrobić dla Java 9.
Lii,

11

Miałem ten problem z moim Ubuntu.

Wszystko, co musiałem zrobić, aby uzyskać źródła do mojej instalacji Java, to:

sudo apt-get install sun-java6-source 

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

8

JDK 1.6, którego obecnie używam na OSX Mountain Lion, nie jest wyposażony w src.zipżadną z nich i, o ile wiem, nie jest już dostępny obsługiwany OSX JDK dla wersji 1.6.

Pobrałem więc źródło OpenJDK (korzystając z linków z zaakceptowanej odpowiedzi (+1)) i uruchomiłem:

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 *

(nazwy i ścieżki plików mogą się różnić ...)

Skojarz to src.jarz odpowiednią platformą Java w swoim IDE i powinieneś być gotowy.

Istnieją pewne rozbieżności między źródłem OpenJDK a JDK, który obecnie używam (numery wierszy nie pasują do debugera), ale jeśli chcesz, to zip / jar, aby wskazać IDE dla względnie W kilku przypadkach trzeba zajrzeć do kodu, aby zrozumieć, jak coś działa, to powinno załatwić sprawę.


1
thx, potrzebowałem tego podczas korzystania z mac. nie ma jasnych instrukcji dotyczących najnowszego systemu operacyjnego i sposobu pobierania źródła. (wszyscy mówią o pobieraniu aktualizacji, które nie zawierają źródła ani pobierania z Oracle, ale wszystko jest niejasne lub błędne w taki czy inny sposób)
dtc

1
Chciałem tylko podkreślić, że jest to właściwy sposób, aby to zrobić, ponieważ jak powiedział @dtc, każda inna instrukcja jest błędna lub nieaktualna. Zrobiłem to z IntelliJ 15 w projekcie Scala, zadziałało idealnie. Dzięki @MisterEd!
mjuarez

src.jar nie jest pełnym źródłem. Na przykład nie zawiera źródła javax.net
Kannan Ramamoorthy

4

Ten plik jest zawarty w standardowym pobranym pakiecie JDK . Również twój system Linux prawdopodobnie ma JDK w repozytorium. W moim pliku Ubuntu Linux znajduje się tutaj: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip


Aha! Czy możesz opublikować, które pakiety zainstalowałeś dla swojej maszyny wirtualnej Java i JDK? Ponieważ nie mam tego folderu.
Martijn Courteaux

4

W JDK 8 źródła można znaleźć w /src.zip. Teraz w niektórych wersjach pośrednich brakowało tego pliku zip, ale jest on ponownie dostępny.wprowadź opis obrazu tutaj

upewnij się, że wybrałeś również źródło w kreatorze instalacji.



2

Cóż, otworzyłem terminal na moim Macu i wpisałem: "echo $ JAVA_HOME", a potem znalazłem katalog, poszedłem tam i znalazłem src.zip


1

Tak!! Rozumiem!

Pobrałem zestaw Java Developer Kit (JDK) ze strony sun.com dla systemu Linux. Był tam src.zip. Najpierw jednak odinstalowałem wszystkie pakiety Java za pomocą synaptic.


zwróć uwagę, że w Linuksie naprawdę nie trzeba być rootem, aby zainstalować Javę. Zawsze (od ponad dziesięciu lat) instaluję Javę jako użytkownik inny niż root na moich systemach Un * x (więc nie, nie używam apt-get / synaptic / cokolwiek).
SyntaxT3rr0r

1

Oficjalny link nie zawiera już oryginalnego kodu źródłowego. Oficjalny link i zwykłe wyszukiwania w Google skierują Cię z otwartym jdk. Open jdk powoduje problemy z kompilacją systemu Android, chyba że zmodyfikowane zostaną pliki skryptów kompilacji. Oryginalne opakowanie można znaleźć tutaj:

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

To repozytorium nadal zawiera pakiet sun-java6-source. Źródło: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.