มีวิธีง่ายๆในการแนบซอร์สใน Eclipse หรือไม่?


130

ฉันเป็นแฟนตัวยงของวิธี Visual Studio จะให้เอกสารแสดงความคิดเห็น / ชื่อพารามิเตอร์เมื่อกรอกโค้ดที่คุณเขียนและโค้ด ALSO ที่คุณอ้างถึง (ไลบรารี / แอสเซมบลีต่างๆ)

มีวิธีง่ายๆในการรับชื่อ javadoc / พารามิเตอร์แบบอินไลน์ใน Eclipse เมื่อทำโค้ดเสร็จสมบูรณ์หรือวางเมาส์เหนือเมธอด? ผ่านปลั๊กอิน? ผ่านการตั้งค่าบางอย่าง? มันน่ารำคาญมากที่ต้องใช้ไลบรารีจำนวนมาก (เช่นที่เกิดขึ้นบ่อยใน Java) จากนั้นต้องไปที่เว็บไซต์หรือตำแหน่ง javadoc ในพื้นที่เพื่อค้นหาข้อมูลเมื่อคุณมีในขวดต้นทางที่นั่น!


มีวิธีการอื่นเมื่อใช้ปลั๊กอิน maven m2e หรือไม่?
cmcginty

1
ดูเพิ่มเติม: วิธีแนบ javadoc หรือซอร์สเข้ากับ jars ในโฟลเดอร์ libs สำหรับวิธีทำสำหรับ Android โดยที่วิธีแก้ปัญหาด้านล่างใช้ไม่ได้
blahdiblah

คำตอบ:


153

คำตอบสั้น ๆ ก็คือใช่

คุณสามารถแนบแหล่งที่มาโดยใช้คุณสมบัติสำหรับโครงการ

ไปที่ Properties (สำหรับ Project) -> Java Build Path -> Libraries

เลือกไลบรารีที่คุณต้องการแนบ source / javadoc แล้วขยายคุณจะเห็นรายการดังนี้:

Source Attachment: (none)
Javadoc location: (none)
Native library location: (none)
Access rules: (No restrictions)

เลือกตำแหน่ง Javadoc จากนั้นคลิกแก้ไขทางด้านขวา มันควรจะตรงไปตรงมาจากที่นั่น

โชคดี :)


3
แน่นอนคุณควรทราบว่าคุณสามารถทำเช่นเดียวกันกับส่วนไฟล์แนบแหล่งที่มาได้หากคุณมีแหล่งที่มาจริงที่คุณต้องการแนบ จากนั้นคุณจะได้รับ Javadoc และคุณสามารถดูแหล่งที่มาจริงได้โดยตรงหากคุณต้องการ
ColinD

14
ฉันจะเรียกวิธีนี้ว่าเป็นวิธีที่ยากและเจ็บปวดในการแนบแหล่งที่มา คุณต้องทำทุกครั้งที่คุณรวมไฟล์ jar ไว้ในทุกโปรเจ็กต์ที่คุณใช้ jar เมื่อคุณมีขวดโหลมากมายและโครงการมากมายนั่นไม่ดีแน่
James Moore

3
@JamesMoore มีวิธีที่ดีกว่านี้ไหม?
เฟลิกซ์

12
โหวตมากเกินไปสำหรับคำตอบนี้! คำตอบที่ได้รับการปรับปรุงเป็นเวลา 5 ปีคือตัวระบุแหล่งที่มาของจาวาซึ่งเหมาะกับ "วิธีง่ายๆ"
sevenforce

1
จะทำอย่างไรเมื่อเรามี "non-modifiable" บน lib?
Henrique de Sousa

108

จนถึงเมื่อวานนี้ฉันติดอยู่กับความพยายามอย่างมากในการดาวน์โหลดซอร์สที่มาเป็นจำนวนมากและติดตั้งด้วยตนเองสำหรับทุกโครงการ จากนั้นเพื่อนร่วมงานเปิดให้ฉันไปจาวามา Attacher มันทำสิ่งที่ eclipse ควรทำ - เมนูบริบทคลิกขวาที่ระบุว่า "แนบ Java Source"

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

จะดาวน์โหลดแหล่งที่มาให้คุณโดยอัตโนมัติและแนบ ฉันกดไลบรารีเพียงสองสามไลบรารีเท่านั้นที่ไม่รู้และเมื่อใดที่เกิดขึ้นจะช่วยให้คุณสามารถส่ง url กลับไปยังชุมชนได้ดังนั้นจะไม่มีใครมีปัญหากับไลบรารีนั้น


มันใช้งานได้ แต่มีวิธีง่ายๆในการรับจากวิธีการที่คุณกำลังตรวจสอบไปยังโถที่มาจากใน Project Explorer หรือไม่?
Noumenon

โปรดทราบว่า.jarไฟล์ไม่ได้บันทึกไว้ในโฟลเดอร์โปรเจ็กต์ของคุณดังนั้นคุณ.classpathจะไม่สามารถพกพาได้หากคุณทำงานร่วมกับผู้อื่น
Stevoisiak

14

วิธีง่ายๆในการทำสิ่งนี้คือ:

  1. ดาวน์โหลดไฟล์ / โฟลเดอร์ SRC ตามลำดับ

  2. ในตัวแก้ไข eclipse ให้ Ctrl + คลิกหรือ F3 บนเมธอด / คลาสที่คุณต้องการซอร์สสำหรับ แท็บใหม่จะเปิดขึ้นซึ่งระบุว่า "ไม่พบแหล่งที่มาที่แนบมา"

  3. คลิกปุ่ม "แนบแหล่งที่มา" คลิกปุ่ม "แนบโฟลเดอร์ต้นทาง" เรียกดูตำแหน่งของโฟลเดอร์ SRC ที่ดาวน์โหลดมา ทำ!

(ps: ป้ายกำกับปุ่มอาจแตกต่างกันเล็กน้อย แต่ก็สวยมาก)


5

ฉันพบว่าบางครั้งคุณชี้ไปที่ไดเร็กทอรีที่คุณคิดว่าถูกต้องและยังระบุว่าไม่พบไฟล์ในแหล่งที่มาที่แนบมา blah blah

ครั้งนี้ฉันตระหนักว่าองค์ประกอบเส้นทางสุดท้ายคือ "src" เพียงแค่ลบองค์ประกอบเส้นทางนี้ (ซึ่งจะชี้ไปหนึ่งระดับเหนือเส้นทางจริงที่มีโฟลเดอร์ "org" หรือ "com" อยู่) ก็ทำให้ใช้งานได้อย่างน่าอัศจรรย์

อย่างไรก็ตาม Eclipse ดูเหมือนจะบ่งบอกถึงองค์ประกอบพา ธ "src" นี้หากมีอยู่และหากคุณรวมไว้ในพา ธ ต้นทาง Eclipse จะทำให้หายใจไม่ออก หรืออะไรทำนองนั้น.


ฉันมีปัญหาเดียวกัน: ซอร์สอยู่ในไดเร็กทอรีชื่อ "source" (โดยที่ "org" เป็นต้น) แต่ฉันไม่สามารถใช้ Eclipse ได้ในขณะที่ Ctrl + คลิกชื่อเมธอด แต่ฉันจะได้รับมุมมองรหัสไบต์ ฉันลองเปลี่ยนชื่อเป็น "src" โดยใช้ "org" เป็นไดเร็กทอรีหรืออันที่อยู่ข้างบน "source" แต่ไม่มีอะไรเปลี่ยนแปลง ...
Matthieu

ฉันไม่เชื่อว่า Eclipse ถือว่าsrcเป็นส่วนหนึ่งของเส้นทาง เพียงเลือกโฟลเดอร์ที่มีโฟลเดอร์ที่ตั้งชื่อตามชื่อโดเมนระดับบนสุดของแพ็คเกจ
H2ONaCl

@broiyan: ตลกดีที่คุณไม่เชื่อเมื่อฉันบอกว่านี่คือสิ่งที่ฉันได้รับจากประสบการณ์ทางร่างกาย ! :-)
stolsvik

5

ใช่มีวิธีง่ายๆ ... ไปที่ ... http://sourceforge.net/projects/jdk7src/ และดาวน์โหลดไฟล์ zip จากนั้นแนบสิ่งนี้เข้ากับคราส ให้เส้นทางที่คุณดาวน์โหลดไฟล์ zip ใน eclipse จากนั้นเราสามารถเรียกดูแหล่งที่มา


5

1) กด Control ค้างไว้ + คลิกซ้ายที่วิธีการที่คุณต้องการดู จากนั้น Eclipse จะนำคุณไปยังหน้า Source Not Found

2) คลิกที่ "แนบแหล่งที่มา" ป้อนคำอธิบายภาพที่นี่

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

4) ไปที่ C: \ Program Files \ Java \ jdk-9.0.1 \ lib \ src.zip

5) คลิกตกลง ป้อนคำอธิบายภาพที่นี่ ตอนนี้คุณจะเห็นซอร์สโค้ด


4

เมื่อคุณเพิ่มไฟล์ jar ลงใน classpath คุณสามารถแนบไดเร็กทอรีต้นทางหรือไฟล์ zip หรือ jar เข้ากับ jar นั้นได้ ในคุณสมบัติ Java Build Path บนแท็บ Libraries ขยายรายการสำหรับ jar และคุณจะเห็นว่ามีรายการสำหรับไฟล์แนบที่มา เลือกรายการนี้จากนั้นคลิกปุ่มแก้ไข ซึ่งช่วยให้คุณสามารถเลือกโฟลเดอร์ jar หรือ zip ที่มีแหล่งที่มาได้

นอกจากนี้หากคุณเลือกคลาสหรือวิธีการใน jar และ CTRL + CLICK บนมัน (หรือกด F3) คุณจะเข้าสู่มุมมอง bytecode ซึ่งมีตัวเลือกในการแนบซอร์สโค้ด

การทำสิ่งเหล่านี้จะทำให้คุณมีชื่อพารามิเตอร์ทั้งหมดและ javadoc แบบเต็ม

หากคุณไม่มีซอร์ส แต่มี javadoc คุณสามารถแนบ javadoc ผ่านวิธีแรก มันยังสามารถอ้างอิง URL ภายนอกได้หากคุณไม่ได้ดาวน์โหลด


3
  1. คลิกที่รหัส JAVA ที่คุณต้องการดู (คลิกที่รายการเพื่อเปิด List.java หากคุณต้องการตรวจสอบซอร์สโค้ดสำหรับ java.util.List)
  2. คลิกที่ปุ่ม "แนบแหล่งที่มา"
  3. คุณจะถูกขอให้ "เลือกตำแหน่ง (โฟลเดอร์ JAR หรือ zip) ที่มีแหล่งที่มาสำหรับ rt.jar)
  4. เลือกตัวเลือก "ตำแหน่งภายนอก" ค้นหาไฟล์ src.zip
  5. เส้นทางสำหรับ src.zip คือ: * \ Java \ jdk1.8.0_45 \ src.zip

2
  1. ใส่ไฟล์ต้นฉบับลงในไฟล์ zip (เช่นเดียวกับแหล่งที่มาของ java)
  2. ไปที่คุณสมบัติโครงการ -> ไลบรารี
  3. เลือกไฟล์แนบที่มาและคลิก 'แก้ไข'
  4. บน Source Attachment Configuration คลิก 'Variable'
  5. ใน "การเลือกตัวแปร" คลิก "ใหม่"
  6. ใส่ชื่อที่มีความหมายและเลือกไฟล์ zip ที่สร้างในขั้นตอนที่ 1

1

อีกทางเลือกหนึ่งคือคลิกขวาที่ไฟล์ jar ของคุณซึ่งจะอยู่ภายใต้ (Your Project) -> Referenced Libraries -> (jar ของคุณ) และคลิกที่ Properties จากนั้นคลิกที่ Java Source Attachment จากนั้นในเส้นทางตำแหน่งให้ใส่ตำแหน่งสำหรับไฟล์ jar ต้นทางของคุณ

นี่เป็นเพียงอีกวิธีหนึ่งในการแนบไฟล์ต้นฉบับของคุณ



1

หากคุณสร้างไลบรารีของคุณด้วย gradle คุณสามารถแนบซอร์สเข้ากับ jars ที่คุณสร้างจากนั้น eclipse จะใช้โดยอัตโนมัติ ดูคำตอบโดย @MichaelOryl วิธีการสร้างแหล่งขวดกับ gradle

คัดลอกมาที่นี่เพื่อเป็นข้อมูลอ้างอิงของคุณ:

jar {
    from sourceSets.main.allSource
}

วิธีแก้ปัญหาที่แสดงนี้ใช้กับปลั๊กอิน gradle java ระยะทางอาจแตกต่างกันไปหากคุณไม่ได้ใช้ปลั๊กอินนั้น


0

อีกแนวคิดหนึ่งในการทำให้ง่ายขึ้นเมื่อใช้โครงสร้างอัตโนมัติ:

เมื่อคุณสร้าง jar ของหนึ่งในโปรเจ็กต์ของคุณให้สร้างไฟล์ซอร์ส jar ด้วย:
project.jar
project-src.jar

แทนที่จะเข้าไปในกล่องโต้ตอบตัวเลือก build path เพื่อเพิ่มการอ้างอิงแหล่งที่มาให้กับแต่ละ jar ให้ลองทำดังต่อไปนี้: เพิ่มการอ้างอิงแหล่งที่มาหนึ่งรายการผ่านกล่องโต้ตอบ แก้ไข. classpath ของคุณและใช้รายการ jar แรกเป็นเทมเพลตเพิ่มไฟล์ jar ต้นทางลงใน jar อื่น ๆ ของคุณ

ด้วยวิธีนี้คุณสามารถใช้เครื่องมือช่วยนำทางของ Eclipse ได้อย่างเต็มที่ในขณะที่ยังคงใช้สิ่งที่เป็นแบบสแตนด์อโลนมากขึ้นเพื่อสร้างโครงการของคุณ


0

ฉันจะขอทางเลือกอื่นในการแนบแหล่งที่มากับ JAR เดียวกันที่ใช้ในหลายโครงการ ในขั้นต้นฉันเคยคิดว่าทางเลือกเดียวคือการสร้าง JAR ขึ้นใหม่โดยมีซอร์สที่รวมอยู่ แต่เมื่อมองไปที่คุณสมบัติ "ไลบรารีผู้ใช้" คุณไม่จำเป็นต้องสร้าง JAR ด้วยซอร์ส

นี่เป็นอีกทางเลือกหนึ่งเมื่อคุณมีหลายโปรเจ็กต์ (เกี่ยวข้องหรือไม่) ที่อ้างอิง JAR เดียวกัน สร้าง "ไลบรารีผู้ใช้" สำหรับแต่ละ JAR และแนบแหล่งที่มา ครั้งต่อไปที่คุณต้องการ JAR เฉพาะแทนที่จะใช้ "Add JARs ... " หรือ "Add External JARs ... " ให้คุณเพิ่ม "ไลบรารีผู้ใช้" ที่คุณสร้างไว้ก่อนหน้านี้

คุณจะต้องแนบแหล่งที่มา ONCE ต่อ JAR เท่านั้นและสามารถใช้ซ้ำได้สำหรับโครงการจำนวนเท่าใดก็ได้


0

สำหรับผู้ที่เขียนปลั๊กอิน Eclipse และต้องการรวมซอร์ส ... ในคุณลักษณะ ExportWizard มีตัวเลือกสำหรับการรวมซอร์ส: ป้อนคำอธิบายภาพที่นี่


0

เพียงคลิกที่แนบแหล่งที่มาและเลือกเส้นทางโฟลเดอร์ ... ชื่อจะเหมือนกับชื่อโฟลเดอร์ (ในกรณีของฉัน) จำสิ่งหนึ่งที่คุณต้องเลือกพา ธ ไปยังตำแหน่งฐานของโฟลเดอร์โปรเจ็กต์ด้วย "\" ที่คำต่อท้ายเช่น D: \ MyProject \


-2

อาจดูเหมือน overkill แต่ถ้าคุณใช้ maven และรวมซอร์สปลั๊กอิน mvn eclipse จะสร้างคอนฟิกูเรชันซอร์สทั้งหมดที่จำเป็นเพื่อให้คุณมีเอกสารในบรรทัดทั้งหมดที่คุณสามารถขอได้


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