ฉันคิดว่าคุณต้องการใช้การดีบักทีละขั้นตอนจาก Eclipse คุณสามารถเรียกใช้คลาสภายนอกได้โดยการตั้งค่าคลาสที่สร้างขึ้นในไดเร็กทอรี bin บนพา ธ คลาส JRE
java -cp workspace\p1\bin;workspace\p2\bin foo.Main
คุณสามารถดีบักโดยใช้ตัวดีบักระยะไกลและใช้ประโยชน์จากไฟล์คลาสที่สร้างขึ้นในโครงการของคุณ
ในตัวอย่างนี้โครงสร้างโครงการ Eclipse มีลักษณะดังนี้:
workspace\project\
\.classpath
\.project
\debug.bat
\bin\Main.class
\src\Main.java
1. เริ่มคอนโซล JVM ในโหมดดีบัก
debug.batเป็นไฟล์แบตช์ของ Windows ที่ควรเรียกใช้ภายนอกจากคอนโซลcmd.exe
@ECHO OFF
SET A_PORT=8787
SET A_DBG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%A_PORT%,server=y,suspend=y
java.exe %A_DBG% -cp .\bin Main
ในข้อโต้แย้งพอร์ตการแก้ปัญหาที่ได้รับการตั้งค่าให้8787 ระงับ y =อาร์กิวเมนต์บอก JVM จะรอจนกว่าจะยึดติดดีบัก
2. สร้างการกำหนดค่าการเปิดตัวการแก้ปัญหา
ใน Eclipse เปิดไดอะล็อก Debug (Run> Open Debug Dialog ... ) และสร้างคอนฟิกูเรชันRemote Java Applicationใหม่ด้วยการตั้งค่าต่อไปนี้:
- โครงการ:ชื่อโครงการของคุณ
- ประเภทการเชื่อมต่อ: Standard (Socket Attach)
- โฮสต์: localhost
- พอร์ต: 8787
3. การแก้จุดบกพร่อง
ดังนั้นสิ่งที่คุณต้องทำทุกครั้งที่คุณต้องการแก้ไขข้อบกพร่องของแอปคือ:
- กำหนดจุดพัก
- เปิดไฟล์แบตช์ในคอนโซล
- เปิดการกำหนดค่าการดีบัก
คุณสามารถติดตามปัญหานี้ในข้อผิดพลาด 122429 คุณสามารถทำงานรอบปัญหานี้ในแอพลิเคชันของคุณโดยใช้ชั้น abstraction ตามที่อธิบายไว้ที่นี่
System.out
และSystem.in
จะเพียงพอสำหรับกรณีการใช้งานของฉันและ abondanedSystem.console()
ใช้