Skip to content

Export Execute JAR สำหรับ IntelliJ IDEA

คนทำงานกับ Java คงคุ้นเคยกับ *.jar (JAR – Java Archive) เป็นอย่างดีเพราะ application หรือ library ส่วนใหญ่มักจะถูกรวมมาแบบนี้เพื่อความสะดวกในการเอาไปใช้งานต่อ jar ไฟล์เดียวเอาไปใช้งานได้เลยไม่ต้องเอา folder หรือ config files อะไรไปอีกให้ยุ่งยาก

แล้วถ้าเราจะทำบ้างล่ะ ต้องทำยังไง?

ถ้าเป็น Eclipse project ผมเคยเขียนถึงไปแล้ว วิธีการยุ่งยากนิดหน่อย อาจต้องแก้โค้ดด้วย แต่ถ้าเป็น Maven project อาจจะใช้ command line ได้แต่ก็อาจจะยุ่งยาก แต่ก็มี IDE ที่เป็น Maven-based ให้ใช้นั่นคือ IntelliJ IDEA ครับถึงจะยังไม่เป็นที่นิยมเท่า Eclipse แต่ความสามารถไม่ต่างกันเลยนะ IDE ที่ใช้พัฒนาโปรแกรมก็ใช้ IDEA เป็นฐานในการพัฒนา เช่น Android Studio, PyCharm ใช้แรกๆ อาจจะงง flow การทำงานและ concept นิดหน่อยแต่ใช้ไปเรื่อยเดี๋ยวก็ชินเอง (แหงหละ)

concept ของ IDEA คือการตั้งค่า artifact ของ project ก่อนจากนั้นก็สั่ง build ก็จะได้ *.jar ออกมา ส่วนจะ export *.jar เพื่อเป็น library หรือ execute *.jar ก็แล้วแต่เราจะตั้งค่า artifact ครับ

ขั้นตอนการ export execute jar ของ IDEA ทำตามนี้ครับ

ตั้งค่า Project Structure

แถบเมนูข้างบนไปที่

File > Project Structure

lexto-service - [~-IdeaProjects-lexto-service] - [lexto-service] - ...-src-main-java-service-api-ServiceStartup.java - IntelliJ IDEA 13.1.6_084
คลิกดู full size
โปรแกรมจะเปิดหน้าต่าง Project Structure ขึ้นมา ให้เราคลิกที่เมนู Artifacts ซ้ายมือ ช่องถัดมาให้กดเครื่องหมายบวก

+  > jar > From modules with dependencies…

ถ้าเคยตั้งค่ามาก่อนแล้วใช้ไม่ได้ จะลบออกก่อนก็ได้ครับ

Project Structure_085
คลิกดู full size

พอคลิกที่เมนู From modules with dependencies จะเจอหน้าต่างให้เราเลือก Main class และ path manifest file สำหรับใช้ build ให้ตั้งค่าและเลือกตามรูปครับ

Create Jar from Modules_086
คลิกดู full size
  1.  ช่อง Main Class ให้เลือก Main class ที่เราต้องการให้มันทำงานเมื่อมีการรัน jar ที่เราจะสร้าง  ถ้าหา Main class ที่เราต้องการไม่เจอต้องสั่งรัน Main class นั้นก่อน นะครับ
  2. เลือก extract to target jar
  3. เลือก path ที่อยู่ของ META-INF/MANIFEST.MF ปกติค่า default จะชี้ไปที่ package ที่ Main class ที่เราเลือกไว้ แต่เราจะเปลี่ยนไปเก็บไว้ที่ directory src/ แทนครับ และแนะนำว่าตอนเลือก path ให้กดที่ปุ่ม … ท้ายช่องแล้วค้นหาแทนการพิมพ์แก้ path ในช่อง

กดปุ่ม OK จะได้ตามรูปนี้

คลิกดู full size
คลิกดู full size

ตรวจสอบตามหมายเลข 1, 2, 3 ว่าได้คล้ายๆ แบบนี้หรือเปล่า

ช่องหมายเลข 1 ควรเป็นประเภท jar ส่วน output เมื่อ build แล้วจะให้ไปวางไว้ที่ไหนให้ดูที่ช่อง output directory

ช่องหมายเลข 2 ให้สังเกตว่าเป็น Extracted ….(ชื่อ jar ที่เป็น dependencies)… หรือเปล่า icon ข้างหน้าจะเป็น icon ลูกศรจากขวดชี้มาที่แฟ้มสีเหลือง

ช่องหมายเลข 3 ควรจะเป็น MANIFEST.MF และ Main class ที่เราเลือกไว้

เสร็จแล้วกดปุ่ม OK เพื่อปิดหน้าต่างครับ

Build Artifacts เพื่อ Export jar

ที่แถบเมนูข้างบน เลือก Build > Build Artifacts

คลิกดู full size
คลิกดู full size

จะปรากฎเมนูเล็กๆ กลางจอดังรูป ให้เลือก Build (หรือจะ Clean ก่อนก็ได้)

คลิกดู full size
คลิกดู full size

โปรแกรมก็จะ build project เมื่อ build เสร็จให้เข้าไปดูที่ directory ที่เราตั้งไว้ในช่อง output directory ในขั้นตอนที่แล้ว ถ้าไม่มีอะไรผิดพลาดจะเจอ *.jar ข้างใน จากนั้นลองใช้ terminal cd เข้าไปในไดเรกทอรีแล้วสั่งรันด้วยคำสั่ง

โปรแกรมก็จะทำงานตาม Main class ที่เราเขียนไว้ครับ

Be First to Comment

Leave a Reply

Your email address will not be published.