จะหาซอร์สโค้ด Java JDK ได้ที่ไหน [ปิด]


153

ฉันต้องการจะดูว่าวิธีการใน Java API ทำอะไร ดังนั้นฉันต้องการซอร์สโค้ด JDK ก่อนที่ฉันจะติดตั้งลินุกซ์ใหม่ฉันมีsrc.zipแพ็คเกจที่มีซอร์สโค้ดอย่างเป็นทางการอยู่ในนั้น ฉันต้องบอก Eclipse ว่าไฟล์นี้อยู่ที่ไหนและฉันสามารถดูรหัสได้ แต่ตอนนี้ฉันไม่มีไฟล์อีกต่อไป ...

ดังนั้นคำถามคือฉันจะหาได้ที่ไหน


16
ฉันพบsrc.zipไฟล์ที่มี Java API สาธารณะอยู่เสมอในไดเรกทอรีการติดตั้ง JDK นั่นคือสิ่งที่คุณกำลังมองหา (ฉันใช้ Windows เป็นหลักดังนั้นบางที distro Linux อาจไม่มี)
Ash

16
นี่เป็นปริศนาที่คำถามนี้อยู่ที่ # 3 ใน google เมื่อค้นหาแหล่ง JDK # 1 และ # 2 เป็นลิงค์ของ Oracle ที่ไม่มีลิงค์ซอร์สโค้ด ฉันมักจะผ่านคำถามนี้เมื่อติดตั้ง JDK ออราเคิลโปรด
Andrzej Rehmann

4
src.zip เป็นบันเดิลซอร์สสำหรับ core API เท่านั้น ไม่มีแหล่งข้อมูลสาธารณะสำหรับ Java SE ทั้งหมดจาก Oracle บางส่วนเป็นแหล่งข้อมูลปิด อย่างไรก็ตามขึ้นอยู่กับแพลตฟอร์มคุณสามารถติดตั้งและใช้งานบนไบนารี OpenJDK พร้อมด้วยแหล่งข้อมูล 100% สำหรับแหล่งข้อมูล - ตรงไปที่ openjdk.java.net และโคลนแหล่งเก็บข้อมูลของแหล่งที่มาสำหรับรุ่นที่คุณต้องการ สำหรับไบนารี - ผู้จำหน่ายบางรายมีไบนารีดังกล่าวรวมถึง IcedTea สำหรับ linux
Ivan Krylov

1
@Hoto ฉันใช้ Java ตั้งแต่ปี 1996 และฉันพยายามดึงผมออกมาเพื่อค้นหา oracle src.zip สำหรับ JDK7 นี่มันโง่อย่างไม่น่าเชื่อ WhereTF มันคืออะไร ???? มันไม่เคยเป็นเรื่องยาก หมายเหตุฉันไม่ต้องการ OpenJDK

2
@Ash ฉันเคยค้นหา src.zip ในไดเรกทอรีการติดตั้งเช่นกัน จากนั้นคุณจะแยกไปยังไดเรกทอรี. / src/ และทุกอย่างดี แต่มันไม่ได้อยู่ที่นั่นตอนนี้ ในความเป็นจริงJDK readme 1.7ระบุว่าควรมี src.zip อยู่ และไม่มี นี่มันบ้าคลั่ง

คำตอบ:


128

คุณยังไม่ได้บอกว่ารุ่นที่คุณต้องการ แต่ที่เก็บของรหัสที่มา JDK 8 สามารถดาวน์โหลดได้ที่นี่พร้อมกับJDK 7และJDK 6

นอกจากนี้คุณสามารถเรียกดูหรือโคลนที่เก็บ Mercurial: 8 , 7 , 6


1
ใช่; ให้บอกว่าฉันต้องการ 6 จากนั้นในหน้าดาวน์โหลดนั้นฉันต้องดาวน์โหลดอะไร ไฟล์ใหญ่jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? ฉันดาวน์โหลดไปแล้ว แต่ไม่มีซอร์สโค้ด
Martijn Courteaux

3
@Martijn: คุณลองดาวน์โหลดไฟล์ jar ขนาดใหญ่แล้วอ่าน README ข้างในไหม java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jarโดยทั่วไปคุณเพียงแค่ใช้มันด้วย มันจะดึงแหล่งที่มา
Jon Skeet

2
ใช่ฉันทำมัน และฉันแยกมันออกมาเหมือนที่คุณเขียน แต่ไม่มี jar หรือ zip ในซอร์ส
Martijn Courteaux

1
เพิ่งต้องการเพิ่มว่าสถานที่ปัจจุบัน (2013) ปัจจุบันเป็น jdk7.java.net ซึ่งเปลี่ยนเส้นทางไปยัง OTN สำหรับการดาวน์โหลดใด ๆ
Kedar Mhaswade

3
สำหรับ 1.7 นั้นยังมีsourceforge.net/projects/jdk7src
Jason C

32

โอกาสที่คุณจะได้รับซอร์สโค้ดด้วย JDK มันเป็นเรื่องของการค้นหาว่ามันอยู่ที่ไหน ในกรณีที่โฟลเดอร์ JDK ไม่มีซอร์สโค้ด:

sudo apt-get install openjdk-7-source

OSX Folks ค้นหาในสูตรโฮมบรูว์

ในอูบุนตูคำสั่งด้านบนจะวางไฟล์ souce ของคุณไว้ใต้: / usr / lib / jvm / openjdk-7 /

ข่าวดีก็คือ Eclipse จะนำคุณไปที่นั่นแล้ว (วิธีผูก Eclipse กับซอร์สโค้ด Java):

ทำตามปุ่มสีส้ม

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่


16

น่าเศร้าเช่นการเขียนนี้แม้จะ README เอกสารของตัวเองมีไม่ src.zip ใน JDK 7 หรือ 8 ติดตั้งไดเรกทอรีเมื่อคุณดาวน์โหลด Windows รุ่น

หมายเหตุ: อาจเกิดเหตุการณ์นี้ขึ้นเพราะพวกเราหลายคนไม่ได้ใช้โปรแกรมติดตั้ง. exe แต่แยกไฟล์ออกมา พวกเราหลายคนไม่เรียกใช้การติดตั้ง Java (การติดตั้ง windows แบบเต็มเป่า) ด้วยเหตุผลด้านความปลอดภัย .... เราแค่ต้องการให้ JDK นำเอาสถานที่ที่ไวรัสอาจไม่สามารถหามาใช้ได้

แต่นโยบายของพวกเขาเกี่ยวกับหน้าต่าง .exe (สิ่งที่มันอย่างแท้จริงเป็น) เป็นที่แน่นอนถั่วอย่างไรก็ตาม , src.zip DOESอยู่ในลินุกซ์ติดตั้ง (ก .tar.gz) มีหลายวิธีในการแตกไฟล์. tar และ. gz และฉันชอบยูทิลิตี้ "7Zip" ฟรี

  1. ดาวน์โหลด Linux 64 บิต. tar.gz
  2. ใช้ 7zip เพื่อคลายบีบอัด. tar.gz เป็น. tar
  3. ใช้ 7zip เพื่อแตก. tar ไปยังไดเร็กทอรีการติดตั้ง
  4. src.zip จะรอคุณอยู่ในไดเรกทอรีการติดตั้งนั้น
  5. ดึงมันออกมาแล้ววางไว้ในตำแหน่งที่คุณต้องการ

Oracle นี่มันเกินกว่าที่โง่จริงๆ


3
Oracle JDK8 (อย่างน้อย 1.8.60) มี src.zip ให้ฉันบน Windows Eclipse ไม่ได้ไปรับตามค่าเริ่มต้นอย่างไรก็ตาม
ข้าวฟ่างron

@ milletron ฉันก็สังเกตเห็นมันในการเปิดตัว windows ล่าสุด ฉันมีความรู้สึกว่ามีบางอย่างพังทลายลงใน windows ของพวกเขาดาวน์โหลดการผลิตภาพในช่วงระยะเวลาหนึ่งก่อนหน้านี้ อาจเกี่ยวข้องกับความแตกต่างในการยกเลิกบรรทัด b / w unix (LF) และ windows (CRLF) หรือไม่

นี่คือสิ่งที่ฉันต้องทำสำหรับ Java 9
Lii

11

ฉันมีปัญหากับ Ubuntu ของฉัน

ทั้งหมดที่ฉันต้องทำเพื่อให้ได้แหล่งที่มาสำหรับ insallation java ของฉันคือ:

sudo apt-get install sun-java6-source 

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

8

JDK 1.6 ที่ฉันกำลังใช้บน OSX Mountain Lion ไม่ได้มาด้วยsrc.zipและเท่าที่ฉันสามารถบอกได้ว่าไม่มี OSX JDK ที่รองรับสำหรับ 1.6 อีกต่อไปแล้ว

ดังนั้นฉันจึงดาวน์โหลด OpenJDK source (โดยใช้ลิงก์จากคำตอบที่ยอมรับ (+1)) จากนั้นก็รัน:

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 *

(ชื่อไฟล์และเส้นทางของคุณอาจแตกต่างกันไป ... )

เชื่อมโยงsrc.jarกับแพลตฟอร์ม Java ที่เหมาะสมใน IDE ของคุณและคุณควรจะไปดี

มีความคลาดเคลื่อนระหว่างแหล่งที่มาของ OpenJDK และ JDK ที่ฉันกำลังทำงานอยู่ (หมายเลขบรรทัดไม่ตรงในดีบักเกอร์สำหรับหนึ่ง) แต่ถ้าทั้งหมดที่คุณต้องการคือ zip / jar เพื่อชี้ IDE ของคุณไปที่ มีบางกรณีที่คุณต้องมองไปที่โค้ดเพื่อทำความเข้าใจว่ามีอะไรทำงานได้บ้าง


1
ขอบคุณฉันต้องการสิ่งนี้ในขณะที่ใช้ mac ไม่มีคำแนะนำที่ชัดเจนเกี่ยวกับระบบปฏิบัติการล่าสุดและวิธีการจับแหล่งที่มา (พวกเขาทั้งหมดพูดคุยเกี่ยวกับการดาวน์โหลดการอัปเดตซึ่งไม่รวมถึงแหล่งที่มาหรือการดาวน์โหลดจาก oracle แต่มันก็คลุมเครือหรือผิดพลาดในทางเดียวหรืออย่างอื่น)
dtc

1
แค่อยากจะเน้นว่านี่เป็นวิธีที่ถูกต้องที่จะทำเช่นเดียวกับ @dtc ที่กล่าวว่าการสอนอื่น ๆ ที่ผิดพลาดหรือค้างอยู่ ทำสิ่งนี้กับ IntelliJ 15 ในโครงการ Scala มันทำงานได้อย่างสมบูรณ์ ขอบคุณ @MisterEd!
mjuarez

src.jar ไม่ใช่แหล่งสมบูรณ์ ตัวอย่างเช่นไม่มีแหล่งที่มาของ javax.net
Kannan Ramamoorthy

4

ไฟล์นี้จะมีอยู่ในมาตรฐาน JDK ดาวน์โหลด นอกจากนี้ระบบ Linux ของคุณอาจมี JDK ในที่เก็บ ในไฟล์ Ubuntu Linux ของฉันอยู่ที่นี่: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip


Aha! คุณช่วยโพสต์แพ็คเกจที่คุณติดตั้งสำหรับ Java VM และ JDK ของคุณได้ไหม เพราะฉันไม่มีโฟลเดอร์นั้น
Martijn Courteaux

4

ในแหล่ง JDK 8 สามารถพบได้ใน /src.zip ขณะนี้ในการเผยแพร่สื่อกลางบางรายการซิปนี้หายไป แต่มีอีกครั้งป้อนคำอธิบายรูปภาพที่นี่

ตรวจสอบให้แน่ใจว่าคุณเลือกซอร์สเช่นกันจากวิซาร์ดการติดตั้ง



2

ฉันเปิดเทอร์มินัลใน Mac แล้วพิมพ์: "echo $ JAVA_HOME" จากนั้นฉันได้ไดเรกทอรีไปที่นั่นแล้วพบ src.zip


1

ใช่!! เข้าใจแล้ว!

ฉันดาวน์โหลด Java Developer Kit (JDK) จาก sun.com สำหรับ Linux มี src.zip แต่ก่อนอื่นฉันถอนการติดตั้งแพ็กเกจ Java ทั้งหมดด้วย synaptic


โปรดทราบว่าภายใต้ Linux ไม่จำเป็นต้องเป็น root ในการติดตั้ง Java ฉันมักจะ (ติดตั้งมากกว่าสิบปี) ติดตั้ง Java ในฐานะผู้ใช้ที่ไม่ใช่รูทบนระบบ Un * x (ดังนั้นไม่ฉันไม่ใช้ apt-get / synaptic / อะไรก็ตาม)
SyntaxT3rr0r

1

ลิงค์อย่างเป็นทางการจะไม่ให้รหัสต้นฉบับเดิมอีกต่อไป ลิงก์อย่างเป็นทางการและการค้นหา google ที่ไม่เป็นทางการจะเปิดให้คุณใช้ jdk แบบเปิด Open jdk ทำให้เกิดปัญหากับ Android build เว้นแต่ว่าไฟล์สคริปต์ build จะถูกแก้ไข สามารถพบแพ็คเกจเดิมได้ที่นี่:

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

repo นี้ยังคงมีแพ็คเกจ sun-java6-source เครดิต: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.