Di mana menemukan Kode Sumber Java JDK? [Tutup]


153

Saya ingin melihat apa yang dilakukan metode di API Java. Jadi saya ingin JDK Source Code. Sebelum saya menginstal ulang Linux saya memiliki src.zippaket dengan semua kode sumber resmi di dalamnya. Saya hanya harus memberi tahu Eclipse di mana file ini dan saya bisa melihat kodenya. Tapi sekarang saya tidak punya file lagi ...

Jadi pertanyaannya adalah: Di mana saya bisa menemukannya?


16
Saya selalu menemukan src.zipfile yang berisi Java API publik di direktori instalasi JDK. Apakah itu yang Anda cari (saya terutama menggunakan Windows, jadi mungkin distro Linux tidak memilikinya).
Ash

16
Ini membingungkan bahwa pertanyaan ini adalah # 3 di google ketika mencari sumber JDK. # 1 dan # 2 adalah tautan Oracle yang TIDAK memiliki tautan kode sumber. Saya selalu melewati pertanyaan ini ketika menginstal JDK. Oracle tolong.
Andrzej Rehmann

4
src.zip adalah bundel sumber untuk API inti saja. Tidak ada sumber yang tersedia untuk umum untuk seluruh Java SE dari Oracle, beberapa bagian adalah sumber tertutup. Namun, tergantung pada platform, Anda dapat menginstal dan menggunakan binari OpenJDK dengan 100% sumber tersedia. Untuk sumber - kepala ke openjdk.java.net dan kloning repositori sumber untuk versi yang Anda butuhkan. Untuk binari - beberapa vendor menyediakan binari seperti IcedTea untuk linux.
Ivan Krylov

1
@Hoto, saya sudah menggunakan Java sejak 1996 dan saya mencabut rambut saya mencoba mencari oracle src.zip untuk JDK7. Ini benar-benar bodoh. Di manaTF itu ???? Dulu tidak pernah sesulit ini. Catatan, saya tidak ingin OpenJDK.

2
@ Ash, saya dulu selalu menemukan src.zip di direktori instalasi juga. Anda kemudian akan mengekstraknya ke direktori ./src/, dan semuanya baik-baik saja. Tapi itu tidak ada di sana sekarang. SEBENARNYA, readme JDK 1.7 menunjukkan bahwa harus ada hadiah src.zip. Dan tidak ada. Ini menjengkelkan.

Jawaban:


128

Anda belum mengatakan versi mana yang Anda inginkan, tetapi arsip kode sumber JDK 8 dapat diunduh di sini , bersama dengan JDK 7 dan JDK 6 .

Selain itu Anda dapat menelusuri atau mengkloning repositori Mercurial: 8 , 7 , 6 .


1
Iya; katakanlah saya ingin 6 dan kemudian pada halaman unduhan itu, apa yang harus saya lakukan unduh? File besar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? Saya sudah mengunduh yang itu. Tetapi tidak mengandung kode sumber.
Martijn Courteaux

3
@ Martijn: Apakah Anda mencoba mengunduh file jar besar dan kemudian membaca README di dalamnya? Pada dasarnya Anda hanya menjalankannya java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Ini akan mengekstrak sumbernya.
Jon Skeet

2
Ya saya melakukannya. Dan saya mengekstraknya seperti yang Anda tulis. Tetapi tidak ada toples sumber atau zip di dalamnya.
Martijn Courteaux

1
Hanya ingin menambahkan bahwa tempat (2013) saat ini adalah jdk7.java.net yang mengalihkan ke OTN untuk unduhan apa pun.
Kedar Mhaswade


32

Kemungkinan Anda sudah mendapatkan kode sumber dengan JDK, itu adalah masalah menemukan di mana itu. Dalam kasus ini, folder JDK tidak mengandung kode sumber:

sudo apt-get install openjdk-7-source

OSX Folks, cari dalam formula rumahan.

Di ubuntu, perintah di atas akan meletakkan file sumber Anda di bawah: / usr / lib / jvm / openjdk-7 /

Berita baiknya adalah Eclipse akan membawa Anda ke sana (Cara mengikat Eclipse ke kode sumber Java):

Ikuti tombol oranye

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini


16

Sayangnya, pada tulisan ini, DESPITE readme dokumentasi mereka sendiri, tidak ada src.zip di direktori instalasi JDK 7 atau 8 ketika Anda mengunduh versi Windows .

Catatan: mungkin ini terjadi karena banyak dari kita yang tidak benar-benar menjalankan install .exe, tetapi mengekstraknya. Banyak dari kita tidak menjalankan instalasi Java (instalasi windows full blown) untuk alasan keamanan .... kita hanya ingin JDK menempatkan suatu tempat di luar cara di mana virus potensial tidak dapat menemukannya.

Tetapi kebijakan mereka tentang windows .exe (apa pun itu sebenarnya) memang gila, NAMUN , src.zip TIDAK ada di instalasi linux (a .tar.gz). Ada beberapa cara mengekstraksi .tar dan .gz, dan saya lebih suka utilitas "7Zip" gratis.

  1. unduh Linux 64 bit .tar.gz
  2. gunakan 7zip untuk membuka kompresi .tar.gz ke .tar
  3. gunakan 7zip untuk mengekstrak .tar ke direktori instalasi
  4. src.zip akan menunggu Anda di direktori instalasi itu.
  5. tarik dan letakkan di tempat yang kamu suka.

Oracle, ini benar-benar luar biasa bodoh.


3
Oracle JDK8 (setidaknya 1,8.60) memiliki src.zip untuk saya di Windows. Namun Eclipse tidak mengambilnya secara default.
milletron

@ Milletron, saya juga menyadarinya di rilis windows baru-baru ini. Saya punya perasaan bahwa ada sesuatu yang rusak di windows mereka mengunduh produksi gambar untuk beberapa waktu sebelumnya. Mungkin terkait dengan perbedaan pemutusan garis b / w unix (LF) dan windows (CRLF)?

Inilah yang harus saya lakukan juga untuk Jawa 9.
Lii

11

Saya punya masalah dengan Ubuntu saya.

Yang perlu saya lakukan untuk mendapatkan sumber untuk java insallation saya adalah:

sudo apt-get install sun-java6-source 

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

8

JDK 1.6 yang saat ini saya gunakan di OSX Mountain Lion tidak datang dengan src.zip baik, dan sejauh yang saya tahu tidak ada OSX JDK yang didukung untuk 1,6 tersedia lagi.

Jadi saya mengunduh sumber OpenJDK (menggunakan tautan dari jawaban yang diterima (+1)) lalu menjalankan:

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 *

(nama dan jalur file Anda dapat bervariasi ...)

Asosiasikan hal itu src.jardengan platform Java yang sesuai di IDE Anda dan Anda sebaiknya melakukannya.

Ada beberapa perbedaan antara sumber OpenJDK dan JDK yang saat ini saya jalankan (nomor baris tidak cocok di debugger, untuk satu), tetapi jika semua yang Anda inginkan adalah zip / jar untuk mengarahkan IDE Anda ke untuk relatif beberapa kasus Anda perlu mengintip beberapa kode untuk memahami cara kerja sesuatu, maka ini harus melakukan trik.


1
thx, saya butuh ini saat menggunakan mac. tidak ada instruksi yang jelas mengenai OS terbaru dan cara mengambil sumbernya. (mereka semua berbicara tentang mengunduh pembaruan yang tidak termasuk sumber atau unduhan dari oracle tetapi semuanya samar-samar atau salah dalam satu atau lain cara)
dtc

1
Hanya ingin menyoroti bahwa ini adalah cara yang tepat untuk melakukannya, karena seperti kata @dtc, setiap instruksi di luar sana salah atau basi. Melakukan ini dengan IntelliJ 15 pada proyek Scala, itu bekerja dengan sempurna. Terima kasih @MisterEd!
mjuarez

src.jar bukan sumber lengkap. Sebagai contoh, itu tidak mengandung sumber javax.net
Kannan Ramamoorthy

4

File ini terkandung dalam unduhan JDK standar . Juga sistem Linux Anda mungkin memiliki JDK di repositori. Dalam file Ubuntu Linux saya terletak di sini: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip


Aha! Bisakah Anda memposting paket mana yang telah Anda instal untuk Java VM dan JDK Anda? Karena saya tidak punya folder itu.
Martijn Courteaux

4

Dalam JDK 8 sumber dapat ditemukan di /src.zip. Sekarang dalam beberapa rilis perantara zip ini hilang tetapi sekali lagi tersedia.masukkan deskripsi gambar di sini

pastikan Anda memilih sumber juga dari wisaya instalasi.



2

Yah, saya membuka terminal di Mac saya dan mengetik: "echo $ JAVA_HOME" lalu saya mendapatkan direktori, pergi ke sana dan menemukan src.zip


1

Iya!! Mengerti!

Saya mengunduh Java Developer Kit (JDK) dari sun.com untuk Linux. Ada src.zip di. Tapi pertama-tama saya menghapus semua paket Java dengan sinaptik.


perhatikan bahwa di Linux benar-benar tidak perlu di-root untuk menginstal Java. Saya selalu (sejak lebih dari sepuluh tahun) menginstal Java sebagai pengguna non-root pada sistem Un * x saya (jadi, tidak, saya tidak menggunakan apt-get / synaptic / apa pun).
SyntaxT3rr0r

1

Tautan resmi tidak lagi menawarkan kode sumber asli. Tautan resmi dan pencarian biasa Google akan mendaratkan Anda dengan jdk terbuka. Buka jdk menyebabkan masalah dengan pembuatan Android kecuali file skrip pembuatan dimodifikasi. Paket asli dapat ditemukan di sini:

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

Repo ini masih memiliki paket sun-java6-source. Kredit: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.