อะไรจะเป็นวิธีที่ง่ายที่สุดในการดูคลาส, เมธอด, คุณสมบัติ, ฯลฯ ภายในไฟล์ jar? ฉันกำลังมองหาบางสิ่งที่เทียบเท่ากับLutz Roeder .NET Reflector ที่มีประโยชน์มาก- สำหรับ Java
อะไรจะเป็นวิธีที่ง่ายที่สุดในการดูคลาส, เมธอด, คุณสมบัติ, ฯลฯ ภายในไฟล์ jar? ฉันกำลังมองหาบางสิ่งที่เทียบเท่ากับLutz Roeder .NET Reflector ที่มีประโยชน์มาก- สำหรับ Java
คำตอบ:
การใช้ JDK jar -tf
จะแสดงรายการไฟล์ใน jar javap
จะให้รายละเอียดเพิ่มเติมจากไฟล์คลาสเฉพาะ
tar
ใช้ตัวเลือกที่จำเป็น
C:\Program Files\Java\jdk<version>\bin
ตัวแปรสภาพแวดล้อม PATH ของระบบหรือผู้ใช้ของคุณก่อนที่คุณจะสามารถใช้jar
เป็นคำสั่งระบบ (โดยที่ <version> เป็นหมายเลขสร้างเวอร์ชั่น jdk ของคุณตรวจสอบในC:\Program Files\Java
)
jar tf test.jar | grep MANIFEST
ฉันมักจะเปิดพวกเขาด้วย 7-Zip ... มันช่วยให้อย่างน้อยสามารถดูแพ็คเกจและคลาสและทรัพยากร
ฉันควรจะต้องดูวิธีการหรือสาขาฉันจะใช้ Jad แต่แน่นอนมันจะดีกว่าที่จะพึ่งพา (ดี) JavaDoc ...
ทีนี้มีบางคนใน SO ได้กล่าวถึงปลั๊กอิน Eclipse เพื่อค้นหาว่าไฟล์ jar อยู่ในคลาสใดบางทีพวกเขาสามารถทำอะไรได้มากกว่า (เช่นสิ่งที่คุณร้องขอ)
[แก้ไข] อ้างอิงถึงเธรด SO ไม่ใช่สิ่งที่ถูกถาม แต่มีความเกี่ยวข้องอย่างใดอย่างหนึ่งจึงมีประโยชน์: Java: ฉันจะรู้ได้อย่างไรว่าไฟล์ jar ใดที่จะใช้กำหนดชื่อคลาส
สิ่งที่ฉันใช้เป็นการส่วนตัวคือ JD-GUI มันเป็น 'decompiler' ฟรีเนื่องจากช่วยให้คุณเห็นซอร์สโค้ดคลาสและวัตถุในคลาสรวมถึงดูโครงสร้างไฟล์ในเมนูทรีทางด้านซ้าย อย่างไรก็ตามมันไม่อนุญาตให้คุณแก้ไขคลาสโดยตรง
เว็บไซต์ของ JD-GUI: http://jd.benow.ca/
ในกรณีที่มีคนไม่รู้จักสิ่งนี้ไฟล์ JAR เป็นเพียงไฟล์ ZIP ที่มีคลาสของโปรแกรมทรัพยากร ฯลฯ และข้อมูลเมตาบางส่วน คุณสามารถแยกไฟล์เพื่อดูว่ามันประกอบกันอย่างไร
ดังนั้นฉันใช้unzip
คำสั่งที่ง่ายต่อการจดจำและใช้
unzip -l <jar-file-name>.jar
ตัวอย่างเช่นหากคุณมีไฟล์ jar ที่มีชื่อtest.jar
ดังนั้นunzip -l test.jar
จะแสดงรายการเนื้อหาทั้งหมดของไฟล์ jar
ในขณะที่คำตอบอื่น ๆ ทั้งหมดนั้นยอดเยี่ยม แต่โดยส่วนใหญ่คุณจะต้องใช้ซอฟต์แวร์บางอย่างเช่น7 zip
หรือJDK
เครื่องมือคราสอื่น ๆ ในขณะที่นี่ไม่ต้องการให้คุณมี s / w ขนาดใหญ่เหล่านี้และมาเป็นค่าเริ่มต้นใน linux และ Mac เพื่อให้มีน้ำหนักเบามากและมีประโยชน์ในการใช้งาน
zipinfo <your jar file>
นอกจากนี้คุณยังสามารถใช้ หากระบบปฏิบัติการของคุณรองรับสิ่งนี้
โดยการเพิ่ม jar เข้ากับโปรเจ็กต์ใน IDE โดยปกติแล้วคุณสามารถเห็นเมธอดและชื่อฟิลด์ แต่ไม่ใช่การใช้งานโดยละเอียด NetBeans สามารถทำได้ Eclipse อาจเป็นไปได้ว่า IntelliJ เป็นต้นคุณสามารถเรียกดูโครงสร้าง jar โดยตรงภายใน IDE
สำหรับทุกสิ่งเช่นการดูเนื้อหาคุณสามารถใช้:
jar tvf jarfile.jar
ในการเข้าถึงซอร์สโค้ดคุณจะต้องใช้ตัวแยกสัญญาณเช่น JAD หรือส่วนหน้าหรือส่วนขยายอื่น หากรหัสงงงวยแล้ว ...
การขยายคำตอบของ Tom Hawtin คุณสามารถไพพ์รายชื่อเพื่อกรองคลาสหรือไฟล์ที่ต้องการ:
jar tf my-fat-jar-file.jar | grep filename
สิ่งนี้ควรใช้กับ bash / zsh และ similars หรือ emacs 'eshell
ข้อมูลเพิ่มเติม: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html
jar -tvf file_name.jar
ด้านบนจะพิมพ์ชื่อไฟล์เท่านั้น
หากต้องการดูเนื้อหาของไฟล์คุณสามารถแตกไฟล์ในโฟลเดอร์โดย:
jar -xvf file_name.jar
สิ่งนี้จะทำการคลายซิปไฟล์ jar และใส่เนื้อหาในไดเรกทอรีเดียวกันกับที่คุณใช้งานอยู่
หรือใน Windows เปลี่ยนชื่อไฟล์. jar เป็น. zip จากนั้นคุณสามารถคลายซิปเพื่อแตกและดูเนื้อหาของไฟล์ jar เนื่องจาก jar เป็นไฟล์ zip ภายใน
ใช้ WinRar มันจะเปิดโครงสร้างโฟลเดอร์สำหรับคุณในลักษณะเหมือนเดิม นอกจากนี้ยังช่วยให้การแก้ไข in-archive ในขณะที่รักษาเส้นทาง
หลังจากนั้นไฟล์ JAR จะเป็นไฟล์ ZIP เท่านั้น
หากคุณต้องการดูว่าอะไรอยู่ภายในเพียงแค่เปลี่ยนชื่อเป็นตัวเลือกแรกด้านล่าง ..
F2 & Rename to jarfile.zip
// ใช้ unzipper ใด ๆ ...
jar tvf jarfile.jar
jar tf jarfile.jar
ถ้าฉันเข้าใจอย่างถูกต้องคุณต้องการดูคลาสไม่เพียง แต่ยังวิธีการคุณสมบัติและอื่น ๆ เครื่องมือเดียวที่ฉันรู้ว่าสามารถทำได้คือ Eclipse - ถ้าคุณเพิ่ม jar ใน project classpath คุณจะสามารถเรียกดูคลาสด้วยวิธีการและคุณสมบัติโดยใช้แพ็คเกจสำรวจปกติ
อย่างไรก็ตามนี่เป็นความคิดที่ดีสำหรับเครื่องมือ Java แบบสแตนด์อโลนที่ดี
Jad klunky และไม่ได้รับการบำรุงรักษาอีกต่อไป ฉันเปลี่ยนเป็น"Java Decompiler"ซึ่งมี UI ที่ลื่นไหลและรองรับคุณสมบัติภาษาใหม่
decompiler ทุกตัวที่ฉันใช้มันจะทำงานเป็นรหัส แต่มันก็ไม่สามารถถอดรหัสได้สำเร็จ สำหรับผู้ที่จะช่วยให้เข้าใจถอดชิ้นส่วนรหัสไบต์ Java ผลิตโดยมาตรฐานเครื่องมือ JDK, javap
ไฟล์ jar เป็นเพียงไฟล์ zip ดังนั้นหากคุณคลายซิป (ด้วยการคลายไฟล์ที่คุณโปรดปราน) คุณจะได้ไฟล์ทั้งหมดที่อยู่ภายใน
หากคุณต้องการดูไฟล์ในชั้นเรียนเพื่อดูวิธีการต่างๆคุณจะต้องใช้เครื่องมือสำหรับสิ่งนั้น ตามที่กล่าวไว้ใน PhiLho Eclipse สามารถทำสิ่งนั้นได้ (โดยค่าเริ่มต้น) และฉันคิดว่า Java IDE ส่วนใหญ่มีความสามารถในเรื่องนั้น
ใน Eclipse 3.4 ทำได้
หากการเห็นซอร์สโค้ดก็เป็นปัญหาด้วยเปิดคำถามใหม่
สำหรับการนำทางในระดับไฟล์ Jar (เป็นไฟล์ zip) ฉันใช้ 7zip ซึ่งทำงานได้ดีมากและอนุญาตให้ดูและแก้ไขรายการที่ยอดเยี่ยมสำหรับการแก้ไขปัญหา
วิธีหนึ่งในการทำเช่นนี้คือการเปิดมุมมองใน "แพ็คเกจสำรวจ" การทำเช่นนี้คุณจะเห็นโครงสร้างของขวดของคุณพร้อมรายละเอียดของคลาส สำหรับการตรวจสอบโฟลเดอร์ไลบรารีในโครงการของคุณโดยใช้ package explorer
หน้าต่าง >> แสดงมุมมอง >> อื่น ๆ >> Java >> Package Explorer
อีกวิธีคือคุณสามารถใช้ JarPlug เป็นปลั๊กอิน eclipse สิ่งนี้ใช้ได้ใน eclipse / springsource
หากคุณอยู่ใน windows และใช้ powershell และคุณกำลังมองหาไฟล์ในโถที่คุณสามารถทำได้:
jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}
คุณสามารถเปิดได้ด้วยยูทิลิตี้การคลายการบีบอัดส่วนใหญ่ในวันนี้จากนั้นรับของอย่างDJ Java Decompilerถ้าคุณต้องการดูซอร์ส
Bndtoolsจัดเตรียมปลั๊กอินตัวดู JAR ฟรีสำหรับ Eclipse
เพิ่มไซต์การอัพเดต Eclipseและติดตั้งเฉพาะวิวเวอร์
ความต้องการของฉันคือการดูเนื้อหาของไฟล์ (เช่นไฟล์คุณสมบัติ) ภายใน jar โดยไม่ต้องแตกไฟล์ jar จริงๆ หากใครมาถึงหัวข้อนี้เหมือนฉันลองคำสั่งนี้ -
unzip -p myjar.jar myfile.txt
นี้ทำงานได้ดีสำหรับฉัน!
ฉันคิดว่า Java Decomplier เป็นตัวเลือกที่ดีที่สุดของคุณคุณสามารถดาวน์โหลดได้จากที่นี่: http://jd.benow.ca/
ฉันชอบเบราว์เซอร์ JARแต่ก็มีอินเตอร์เฟซที่เรียบง่ายซึ่งคุณสามารถเรียกดูJARหลาย ๆ อันและค้นหาคลาสที่เจาะจงผ่านJARหลาย ๆ ตัวพร้อมกันได้
Eclipse 3.4 JDT
มันไม่ใช่วิธีที่เร็วที่สุดเพราะคุณต้องลากมันเข้าไปใน eclipse ของคุณก่อน แต่คุณจะมีการเรียกดูคลาส Java แบบเต็มแม้จะเปิดใช้งานการถอดรหัสก็ตาม
ฉันได้ตั้งค่าการกระทำเริ่มต้นใน windows เป็น "Open with WinZip" สิ่งนี้ทำให้การจัดการ JAR เป็นเรื่องง่าย คุณสามารถเพิ่ม / ลบไฟล์ได้ด้วยตนเอง
นี้Jar Explorer ที่เป็นที่ดีพอ
รองรับตัวถอดรหัสสามประเภทคือ JD, Procyon และ Fernflower
อนุญาตให้ค้นหาไฟล์และทำซ้ำในไฟล์เก็บถาวร java ใด ๆ
ผู้ใช้ยังสามารถแก้ไขไฟล์ jar ด้วยไฟล์ D&D และแก้ไขไฟล์ที่ไม่ใช่คลาสได้
IDE ของคุณควรสนับสนุนสิ่งนี้ IDE ของฉัน (SlickeEdit) เรียกมันว่า "ห้องสมุดแท็ก" เพียงเพิ่มไลบรารีแท็กสำหรับไฟล์ jar และคุณควรจะสามารถเรียกดูคลาสและวิธีการต่างๆตามลำดับชั้น
บน Mac มีJarzilla
คุณสามารถลองJarNavigatorเพื่อดูและค้นหาเนื้อหาของไฟล์ jar
นอกจากนี้คุณสามารถใช้Luyten - โอเพ่นซอร์ส Java Decompiler Gui