Executable Jar กับ Netbeans 6.x

Mar 19 2010 Published by admin under Uncategorized

ปกติหากใช้ Netbeans ในการเขียน Java จะเห็นว่าทุกครั้งที่ build จะมีโฟลเดอร์ชื่อ dist เกิดขึ้นมาในโฟลเดอร์โปรเจค ซึ่งในนั้นจะมี jar ที่เกิดจากการ compile code ในโปรเจคของเรา และจะสามารถ double click เพื่อรันได้เลย (หรือใช้ java -jar บน command line) หากมีการตั้ง main class ไว้

ปัญหาคือว่าบางทีถึงแม้มีการตั้ง main class ใน Netbeans ไว้แล้ว แต่เจ้า jar ที่มันสร้างให้ดันไม่สามารถรันได้ นั่นคือ double click ก็ไม่ได้ ใช้ java -jar ก็บอกหา main class ไม่เจอ หากลองเปิดไฟล์ manifest ใน jar ดูจะพบว่ามันไม่ได้เขียน entry “Main-Class” ไว้ จึงไม่แปลกที่มันรันไม่ได้

เหตุผลที่มันไม่ใส่ไว้ให้มีหลายกรณี

  • import project มาจาก Eclipse มีที อาจมี config อะไรบางอย่างไม่ตรง
  • ตอนสร้างโปรเจคใน Netbeans เลือกเป็น Java library ไม่ได้เลือก Java application

วิธีแก้

เปิดไฟล์ PROJECTPATH/nbproject/project.properties เพิ่ม

manifest.file=manifest.mf

ลงไป แค่นี้ก็จะมี entry “Main-Class” ขึ้นมาใน manifest แล้ว jar ก็จะรันได้

อ้างอิง

4 responses so far