จะสร้าง jar ที่มีไลบรารีภายนอกที่รวมอยู่ใน Eclipse ได้อย่างไร?


89

ฉันทำโครงการที่เชื่อมต่อกับฐานข้อมูล (MySQL) เสร็จแล้ว ตอนนี้ฉันต้องการส่งออกโครงการเป็นขวดโหล แต่ฉันไม่รู้ว่าจะรวมการอ้างอิงภายนอกอย่างไร? มีวิธีใดบ้างในการทำ Eclipse หรือฉันควรใช้สคริปต์ใด ๆ สำหรับสิ่งนั้น?


คุณตั้งใจจะส่งมอบแอปอย่างไร ถึงผู้ใช้ปลายทาง? เครือข่าย / อินเทอร์เน็ตดิสก์หรือแฟลชไดรฟ์ .. มีอะไรอีกบ้าง? แอปนี้ มี GUI ไหม
Andrew Thompson

คำตอบ:


141

เมื่อคุณส่งออกโปรเจ็กต์ของคุณเป็น 'ขวดที่รันได้' (เมาส์ขวาบนโปรเจ็กต์ -> ส่งออก -> ขวดที่รันได้) คุณมีตัวเลือกในการรวมการอ้างอิงทั้งหมดลงในโถที่สร้างขึ้น นอกจากนี้ยังมีอีกสองวิธี (ดูภาพหน้าจอ) ในการส่งออกไลบรารีของคุณโปรดระวังใบอนุญาตเมื่อตัดสินใจเลือกวิธีการบรรจุหีบห่อที่คุณจะใช้

ไลบรารีแพ็คเกจ

ดรอปดาวน์ 'การกำหนดค่าการเปิดตัว' จะถูกเติมด้วยคลาสที่มีmain(String[])เมธอด คลาสที่เลือกจะเริ่มต้นเมื่อคุณ 'เรียกใช้' โถ

การส่งออกเป็น jar ที่รันได้จะใช้การอ้างอิงบนเส้นทางการสร้างของคุณ (เมาส์ขวาบนโปรเจ็กต์ -> Build Path -> Configure Build Path ... ) เมื่อคุณส่งออกเป็น jar 'ปกติ' (ไม่สามารถรันได้) คุณสามารถเลือกไฟล์ใดก็ได้ในโปรเจ็กต์ของคุณ หากคุณมีไลบรารีในโฟลเดอร์โปรเจ็กต์ของคุณคุณสามารถรวมไลบรารีเหล่านั้นไว้ด้วยกันได้ แต่ต้องอ้างอิงภายนอกไม่สามารถรวมได้ (สำหรับโครงการ maven ค้นหาที่นี่ )


2
@ Joost: ครับผมไม่ได้รับตัวเลือกใด ๆ ภายใต้หัวข้อการกำหนดค่าการเปิดตัวเมื่อพยายามส่งออกแอปพลิเคชัน java เป็น jar ที่รันได้ มีอะไรผิดพลาดหรือขาดหายไป
Rat-a-tat-a-tat Ratatouille

Eclipse แสดงรายการmain()วิธีการที่มันรู้ ลองเรียกใช้แอปพลิเคชันของคุณหนึ่งครั้ง (คลิกขวาที่โปรเจ็กต์ Run As, Java Application) แล้วส่งออกอีกครั้ง
Joost

ไม่เกี่ยวข้องกับคำถามนี้เนื่องจากระบุ Eclipse ไว้อย่างชัดเจน โปรดโพสต์คำถามใหม่หากคุณไม่พบคำตอบ (ซึ่งแน่นอนว่ามีอยู่ที่ไหนสักแห่งในไซต์นี้แล้ว)
Joost

1
ใครทราบวิธีการทำเช่นนี้สำหรับ jar ที่ไม่สามารถรันได้ใน eclipse? ไม่มีตัวเลือกที่เกี่ยวข้องกับ "ไลบรารีที่จำเป็น"
jb1

@ jb1 คุณเคยคิดออกไหม?
TheKingElessar

9

คุณสามารถใช้ Export-> Java-> Runnable Jar เพื่อสร้าง jar ที่มีการอ้างอิง

หรือคุณสามารถใช้ปลั๊กอินfatjar eclipse รวมทั้งมัดไหเข้าด้วยกัน


5

คุณสามารถคลิกขวาที่โครงการคลิกที่ส่งออกพิมพ์ 'jar' เลือก 'Runnable JAR File Export' คุณมีตัวเลือก 'แยกไลบรารีที่ต้องการลงใน JAR ที่สร้างขึ้น'


3

ส่วนตัว,

คำตอบข้างต้นไม่ได้ผลสำหรับฉันฉันยังคงได้รับข้อผิดพลาด NoClassDefFound (ฉันใช้ Maven สำหรับการอ้างอิง) วิธีแก้ปัญหาของฉันคือสร้างโดยใช้ "mvn clean install" และใช้ "[project] -jar-with-dependencies.jar" ที่คำสั่งนั้นสร้างขึ้น เช่นเดียวกันใน Eclipse คุณสามารถคลิกขวาที่โปรเจ็กต์ -> Run As -> Maven Install และมันจะวางขวดไว้ในโฟลเดอร์เป้าหมาย


2

หากคุณต้องการส่งออกไฟล์ JAR ทั้งหมดของเว็บโปรเจ็กต์ Java ให้เปิดไฟล์ WAR ล่าสุดที่สร้างขึ้นด้วยเครื่องมือ ZIP (เช่น 7-Zip) ไปที่โฟลเดอร์ / WEB-INF / lib / ที่นี่คุณจะพบไฟล์ JAR ทั้งหมดที่คุณต้องการสำหรับโปรเจ็กต์นี้ (ตามที่ระบุไว้ใน "ไลบรารีอ้างอิง")


0

ในขณะที่ส่งออกซอร์สของคุณไปยัง jar ตรวจสอบให้แน่ใจว่าคุณได้เลือกอ็อพชัน jar ที่รันได้จากตัวเลือก จากนั้นเลือกว่าคุณต้องการทำแพ็กเกจไหพึ่งพาทั้งหมดหรือเพียงแค่รวมไว้ในไฟล์ jar โดยตรง ขึ้นอยู่กับโครงการที่คุณกำลังดำเนินการอยู่

จากนั้นคุณเรียกใช้ jar โดยตรงโดย java -jar example.jar


0

ในการสร้างไฟล์ jar ใน eclipse ให้คลิกขวาที่โปรเจ็กต์ที่คุณต้องการสร้างเลือก Export> Java> Runnable Jar File,

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่

โถสร้างซึ่งรวมถึงการอ้างอิงทั้งหมดจาก Pom.xml แต่โปรดตรวจสอบปัญหาใบอนุญาตหากคุณใช้การอ้างอิงของบุคคลที่สามสำหรับแอปพลิเคชันของคุณ


0

หากเป็นโปรเจ็กต์ java แบบสแตนด์อโลน (วิธีหลัก) ไม่ใช่เส้นทางเฉพาะใด ๆ ที่วางขวดทั้งหมดไว้ในโปรเจ็กต์ไม่ใช่เส้นทางเฉพาะใด ๆ จากนั้นคลิกขวาที่โปรเจ็กต์ -> ส่งออก -> ขวดที่รันได้ -> เลือกการกำหนดค่าอาหารกลางวันและการจัดการห้องสมุด จากนั้นเลือกตัวเลือกปุ่มตัวเลือก "แพ็กเกจไลบรารีที่จำเป็นใน jar ที่สร้างขึ้น" -> เสร็จสิ้น

หรือ

หากคุณมีโครงการเว็บให้ใส่ขวดทั้งหมดในโฟลเดอร์ web-inf / lib แล้วทำตามขั้นตอนเดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.