eclipse แตกต่างกันอย่างไรระหว่างการเอ็กซ์พอร์ตเป็นไฟล์ JAR และเอ็กซ์พอร์ตเป็นไฟล์ Runnable JAR ทั้งคู่วิ่งไม่ได้เหรอ? ข้อดี / ข้อเสียของแต่ละข้อคืออะไร?
eclipse แตกต่างกันอย่างไรระหว่างการเอ็กซ์พอร์ตเป็นไฟล์ JAR และเอ็กซ์พอร์ตเป็นไฟล์ Runnable JAR ทั้งคู่วิ่งไม่ได้เหรอ? ข้อดี / ข้อเสียของแต่ละข้อคืออะไร?
คำตอบ:
jar ที่รันได้มีไฟล์ MANIFEST.MF ซึ่งกำหนดคลาส Main ที่จะเรียกใช้เมื่อ jar ถูกรัน
ไหที่ไม่สามารถรันได้เป็นเพียงไลบรารีของคลาสที่สามารถเพิ่มลงในคลาสพา ธ เพื่อให้โค้ดถูกนำมาใช้ซ้ำ (มันมีไฟล์ manifest ด้วย แต่ไม่มีคลาสหลักอยู่ที่นั่น)
jar ที่รันได้คือไฟล์ jar ที่มีไฟล์ Manifest ในตัวซึ่งมีการประกาศ "Main-Class:" ต้องกำหนด "Main-Class" เพื่อให้รันไทม์ของจาวารู้ว่าจะเรียกคลาสใดเมื่อ "รัน" jar หาก jar ไม่มีรายการที่มี "Main-Class:" จะไม่ถือว่าเป็น "jar ที่รันได้" - เป็นเพียงไลบรารีของโค้ด Java
ฉันเดาว่านี่คือความแตกต่างในวิธีที่ Eclipse ส่งออก jar แต่ไม่แน่ใจ 100%
ดูลิงค์นี้สำหรับข้อมูลเพิ่มเติม: http://www.skylit.com/javamethods/faqs/createjar.html
ด้วยไฟล์ JAR มาตรฐานคุณต้องระบุคลาสด้วยเมธอดหลักบนบรรทัดรับคำสั่งเมื่อรัน jar ด้วย JAR ที่รันได้จะมีไฟล์รายการที่จะเก็บข้อมูลนั้นไว้เพื่อให้คุณสามารถพิมพ์java -jar myRunnable.jar
หรือดับเบิลคลิกได้
ในกรณีของฉันฉันเคยเอ็กซ์พอร์ตเป็น jar เมื่อฉันมีคลาสหลักทั้งหมดและไดเร็กทอรีพา ธ ไลบรารีทั้งหมดที่ระบุใน manifest.mf หากหลายแอปพลิเคชันใช้ไลบรารีเดียวกันก็ไม่จำเป็นต้องเอ็กซ์พอร์ตไลบรารีที่แบ่งใช้สำหรับแต่ละ jar ทำให้โถวิ่งเร็วขึ้น แต่หลายครั้งเนื่องจากปัญหาการกำหนดค่าในคลาสพา ธ ของเซิร์ฟเวอร์ที่แตกต่างกันไม่สามารถเข้าถึงไลบรารีได้และในกรณีนี้ควรส่งออก jar ที่รันได้ซึ่งทำให้ไฟล์ทำงานช้าและมีขนาดใหญ่