Java JDK Kaynak Kodu nerede bulunur? [kapalı]


153

Java API'sında bir yöntemin ne yaptığını görmek istiyorum. JDK Kaynak Kodunu istiyorum. Linux'u yeniden kurmadan önce src.zipiçinde tüm resmi kaynak kodunu içeren bir paket vardı . Eclipse'e bu dosyanın nerede olduğunu söylemek zorunda kaldım ve kodu görebiliyordum. Ama artık dosyam yok ...

Soru şu: Nerede bulabilirim?


16
Her zaman src.zipJDK kurulum dizininde genel Java API'sini içeren dosyayı buldum . Aradığınız şey bu mu (esas olarak Windows'u kullandım, bu yüzden belki Linux dağıtımında yoktur).
Kül

16
JDK kaynağı ararken Google'da bu sorunun 3. sırada olması çok zordur. # 1 ve # 2, kaynak kodu bağlantıları OLMAYAN Oracle bağlantılarıdır. JDK yüklerken her zaman bu soruyu inceliyorum. Oracle lütfen.
Andrzej Rehmann

4
src.zip, yalnızca temel API için kaynak paketidir. Oracle'dan Java SE'nin tamamı için herkese açık kaynak yoktur, bazı bölümleri kapalı kaynaktır. Ancak, bir platforma bağlı olarak,% 100 kaynakla OpenJDK ikili dosyasına kurabilir ve kullanabilirsiniz. Kaynaklar için - openjdk.java.net adresine gidin ve ihtiyacınız olan sürüm için bir kaynak deposunu kopyalayın. İkili dosyalar için - birkaç satıcı, linux için IcedTea dahil olmak üzere bu ikili dosyaları sağlar.
Ivan Krylov

1
@Hoto, 1996'dan beri Java kullanıyorum ve JDK7 için oracle src.zip'i bulmaya çalışırken saçlarımı çekiyorum. Bu inanılmaz derecede aptalca. Nerede TF ???? Hiç bu kadar zor olmamıştı. Not, OpenJDK istemiyorum.

2
@Ash, her zaman kurulum dizininde de bir src.zip bulurdum. Sonra bir ./src/ dizinine ayıklamak ve her şey yolunda idi. Ama şimdi orada değil. GERÇEKTEN, JDK 1.7 benioku mevcut bir src.zip olması gerektiğini belirtir . Ve yok. Bu çıldırtıcı.

Yanıtlar:


128

Hangi sürümü istediğinizi söylemediniz, ancak JDK 8 kaynak kodunun bir arşivi, JDK 7 ve JDK 6 ile birlikte buradan indirilebilir .

Ayrıca Mercurial depolarına göz atabilir veya kopyalayabilirsiniz: 8 , 7 , 6 .


1
Evet; Diyelim ki 6 istiyorum ve o indirme sayfasında, ne indirmeliyim? Büyük dosya jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MBmı? Bunu zaten indirdim. Ancak kaynak kodu içermiyor.
Martijn Courteaux

3
@Martijn: Büyük kavanoz dosyasını indirip içindeki README'yi okumayı denediniz mi? Temelde sadece onunla çalıştırın java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Kaynağı çıkaracaktır.
Jon Skeet

2
Evet yaptım. Ve yazdığınız gibi çıkardım. Ancak içinde kaynak kavanoz veya fermuar yoktur.
Martijn Courteaux

1
Sadece mevcut (2013) yeri şimdi herhangi bir indirme için OTN'ye yönlendiren jdk7.java.net olduğunu eklemek istedim.
Kedar Mhaswade


32

Şimdiden JDK ile kaynak kodunu alma şansınız, nerede olduğunu bulmak önemlidir. JDK klasörü kaynak kodu içermiyorsa:

sudo apt-get install openjdk-7-source

OSX Folks, homebrew formüllerinde arama yapın.

Ubuntu'da, yukarıdaki komut sos dosyanızı altına koyacaktır: / usr / lib / jvm / openjdk-7 /

İyi haber şu ki Eclipse sizi zaten oraya götürecek (Eclipse'yi Java kaynak koduna nasıl bağlayabilirsiniz):

Turuncu düğmeleri izleyin

resim açıklamasını buraya girin resim açıklamasını buraya girin resim açıklamasını buraya girin


16

Ne yazık ki, bu yazıdan sonra, kendi belgelerini benioku DESPITE , Windows sürümünü indirdiğinizde JDK 7 veya 8 yükleme dizinlerinde src.zip yoktur .

Not: Belki de bu, çoğumuzun aslında yükleme .exe dosyasını çalıştırmaması, bunun yerine ayıklaması nedeniyle olur. Birçoğumuz Java yüklemesini (tam gelişmiş pencereler yüklemesi) güvenlik nedeniyle çalıştırmıyoruz… JDK'nın potansiyel virüslerin bulamayacağı bir yere koymasını istiyoruz.

Ancak windows .exe (gerçekten ne olursa olsun) ile ilgili politikaları gerçekten fındık, ancak linux kurulumunda (a .tar.gz) src.zip DOES var. Bir .tar ve .gz ayıklamanın birden çok yolu vardır ve ben ücretsiz "7Zip" yardımcı programını tercih ederim.

  1. Linux 64 bit .tar.gz dosyasını indirin
  2. .tar.gz dosyasını bir .tar ile açmak için 7zip kullanın
  3. .tar dosyasını kurulum dizinine ayıklamak için 7zip kullanın
  4. src.zip bu kurulum dizininde sizi bekliyor olacak.
  5. dışarı çekin ve istediğiniz yere yerleştirin.

Oracle, bu gerçekten aptalca.


3
Oracle JDK8 (en azından 1.8.60) Windows'ta benim için src.zip'e sahipti. Eclipse bunu varsayılan olarak seçmedi.
milletron

@milletron, son zamanlarda Windows sürümlerinde de fark ettim. Pencerelerinde bir şeylerin daha önce bir süre görüntü üretimini indirdiğini hissediyorum. Belki de satır sonlandırma s / b unix (LF) ve pencereler (CRLF) arasındaki farkla ilişkili?

Java 9 için de yapmam gereken buydu.
Lii

11

Ubuntu ile bu sorunu yaşadım.

Java insallation için kaynak almak için tek yapmam gereken:

sudo apt-get install sun-java6-source 

Ubuntu E: Unable to locate package sun-java6-source
14.04'te

8

Şu anda OSX Mountain Lion'da kullandığım JDK 1.6 src.zipda biriyle gelmedi ve söyleyebildiğim kadarıyla 1.6 için desteklenen bir OSX JDK yok.

Bu yüzden OpenJDK kaynağını indirdim (kabul edilen cevaptan (+1) bağlantıları kullanarak) sonra koştum:

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 *

(dosya adlarınız ve yollarınız değişebilir ...)

Bunu src.jar, IDE'nizdeki uygun Java platformuyla ilişkilendirin ve gitmek için iyi olmalısınız.

OpenJDK kaynağı ile şu anda çalıştırdığım JDK arasında bazı tutarsızlıklar var (satır numaraları bir hata ayıklayıcıda eşleşmiyor), ancak istediğiniz tek şey IDE'nizi nispeten bir şeyin nasıl çalıştığını anlamak için bazı kodlara göz atmanız gereken birkaç durum, o zaman bu hile yapmalıdır.


1
thx, ben mac kullanırken bunu gerekli. en son işletim sistemi ve kaynağın nasıl ele geçirileceği hakkında net talimatlar yok. (hepsi kaynağı içermeyen güncellemeleri indirme veya oracle'ten indirme, ancak hepsi bir şekilde belirsiz veya hatalı) hakkında konuşuyor
dtc

1
Sadece bunun doğru yol olduğunu vurgulamak istedim, çünkü @dtc'nin dediği gibi, diğer tüm talimatlar hatalı veya bayat. Bunu bir Scala projesinde IntelliJ 15 ile yaptı, mükemmel çalıştı. Teşekkürler @MisterEd!
mjuarez

src.jar tam bir kaynak değildir. Eski için, javax.net kaynağını içermiyor
Kannan

4

Bu dosya standart JDK indirmesinde bulunur . Ayrıca Linux sisteminizde muhtemelen depoda JDK vardır. Ubuntu Linux dosyamda şu konumda bulunur: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip


Aha! Java VM ve JDK'nız için hangi paketleri yüklediğinizi gönderebilir misiniz? Çünkü o klasöre sahip değilim.
Martijn Courteaux

4

JDK 8'de /src.zip kaynağında bulunabilir. Şimdi bazı ara sürümlerde bu zip eksikti ama yine kullanılabilir.resim açıklamasını buraya girin

kurulum sihirbazından da kaynak seçtiğinizden emin olun.



2

Peki, Mac'imde terminal açtım ve "echo $ JAVA_HOME" yazdım, sonra dizini aldım, oraya gittim ve src.zip buldum


1

Evet!! Anladım!

Java Developer Kit'i (JDK) Linux için sun.com'dan indirdim. Src.zip içeriyordu. Ama önce tüm Java paketlerini sinaptik ile kaldırdım.


Linux altında Java'yı yüklemek için gerçekten root olmanıza gerek olmadığını unutmayın. Her zaman (on yıldan fazla bir süredir) Java'yı Un * x sistemlerime kök olmayan bir kullanıcı olarak yüklüyorum (bu nedenle, hayır, apt-get / synaptic / neyse kullanmıyorum).
SyntaxT3rr0r

1

Resmi bağlantı artık orijinal kaynak kodunu sunmuyor. Resmi bağlantı ve sıradan google aramaları size açık jdk ile inecek. Açık jdk, derleme komut dosyaları değiştirilmedikçe android derlemesinde sorunlara neden olur. Orijinal ambalajı burada bulabilirsiniz:

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

Bu repo hala sun-java6 kaynak paketine sahip. Kredi bilgileri: http://pulasthisupun.blogspot.com/2012/05/instal-sun-java-6-with-apt-get-in.html

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.