หากฉันมีไฟล์ต้นฉบับ Java (* .java) หรือไฟล์คลาส (* .class) ฉันจะแปลงเป็นไฟล์. exe ได้อย่างไร
ฉันยังต้องการตัวติดตั้งสำหรับโปรแกรมของฉัน
หากฉันมีไฟล์ต้นฉบับ Java (* .java) หรือไฟล์คลาส (* .class) ฉันจะแปลงเป็นไฟล์. exe ได้อย่างไร
ฉันยังต้องการตัวติดตั้งสำหรับโปรแกรมของฉัน
คำตอบ:
เครื่องมือ Java Packager คอมไพล์แพคเกจและเตรียมแอปพลิเคชัน Java และ JavaFX สำหรับการแจกจ่าย คำสั่ง javapackager เป็นเวอร์ชันบรรทัดคำสั่ง
- เอกสารของ Oracle
javapackager
เรือยูทิลิตี้กับ JDK มันสามารถสร้างไฟล์. exe ด้วยการ-native exe
ตั้งค่าสถานะท่ามกลางสิ่งอื่น ๆ
WinRun4j เป็นตัวเรียกใช้จาวาสำหรับ windows มันเป็นทางเลือกแทน javaw.exe และให้ประโยชน์ดังต่อไปนี้:
- ใช้ไฟล์ INI สำหรับการระบุ classpath, main class, vm args, program args
- ชื่อปฏิบัติการแบบกำหนดเองที่ปรากฏในตัวจัดการงาน
- JVM เพิ่มเติมมีไว้เพื่อการใช้หน่วยความจำที่ยืดหยุ่นมากขึ้น
- ไอคอนทดแทนในตัวสำหรับไอคอนที่กำหนดเอง
- [มีหัวข้อย่อยเพิ่มเติมติดตาม]
- หน้าเว็บของ WinRun4J
WinRun4J เป็นโปรแกรมโอเพ่นซอร์ส แต่ก็มีหลายคุณสมบัติ
แพ็กเกจ JAR สินทรัพย์และ JVM ของคุณสำหรับการเผยแพร่บน Windows, Linux และ Mac OS X เพิ่มไฟล์เรียกทำงานเนทีฟเพื่อให้ดูเหมือนแอปเนทีฟ Packr เหมาะที่สุดสำหรับการใช้งาน GUI
- packr README
packr เป็นเครื่องมือโอเพนซอร์สอื่น
JSmooth เป็น Wrapper ที่ปฏิบัติการได้ของ Java มันสร้างตัวเรียกใช้ Windows ดั้งเดิม (.exe มาตรฐาน) สำหรับแอปพลิเคชัน Java ของคุณ มันทำให้การปรับใช้จาวาเป็นไปอย่างราบรื่นและเป็นมิตรกับผู้ใช้เนื่องจากสามารถค้นหา Java VM ที่ติดตั้งด้วยตัวเอง
- เว็บไซต์ของ JSmooth
JSmooth เป็นโอเพ่นซอร์สและมีคุณสมบัติ แต่มันเก่ามาก รุ่นล่าสุดคือในปี 2007
JexePackเป็นเครื่องมือบรรทัดคำสั่ง (ยอดเยี่ยมสำหรับการสร้างสคริปต์อัตโนมัติ) ที่ช่วยให้คุณจัดทำแพ็กเกจแอปพลิเคชัน Java ของคุณ (ไฟล์คลาส) ทางเลือกพร้อมกับทรัพยากร (เช่น GIF / JPG / TXT / etc) ลงในEXE Windows 32 บิตที่บีบอัดซึ่งทำงานโดยใช้ Java Runtime Environment ของ Sun สนับสนุนทั้งแอปพลิเคชันคอนโซลและหน้าต่าง
- เว็บไซต์ของ JexePack
JexePack เป็นรุ่นทดลองใช้ การชำระเงินเป็นสิ่งจำเป็นสำหรับการใช้งานจริงและไฟล์ exe ที่สร้างด้วยเครื่องมือนี้จะแสดง "การแจ้งเตือน" โดยไม่ต้องชำระเงิน นอกจากนี้รุ่นล่าสุดคือในปี 2013
InstallAnywhere ช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างซอฟต์แวร์ติดตั้งมืออาชีพสำหรับทุกแพลตฟอร์มได้อย่างง่ายดาย ด้วย InstallAnywhere คุณจะปรับตัวเข้ากับการเปลี่ยนแปลงของอุตสาหกรรมได้อย่างรวดเร็วเข้าถึงตลาดได้เร็วขึ้นและมอบประสบการณ์ที่น่าดึงดูดให้กับลูกค้า และรู้จุดอ่อนขององค์ประกอบ OSS ของโครงการของคุณก่อนจัดส่ง
- เว็บไซต์ของ InstallAnywhere
InstallAnywhere เป็นแพคเกจการค้า / องค์กรที่สร้างตัวติดตั้งสำหรับโปรแกรมที่ใช้ Java มันอาจจะสามารถสร้างไฟล์. exe ได้
ในฐานะที่เป็นทางเลือกให้กับไฟล์ exe คุณสามารถสร้างไฟล์ JAR ที่จะทำงานโดยอัตโนมัติเมื่อคลิกสองครั้งโดยการเพิ่มจุดเริ่มต้นที่จะประจักษ์ขวด
แหล่งข้อมูลที่ดีเยี่ยมในหัวข้อนี้คือบทความของ Excelsior "การแปลง Java เป็น EXE - ทำไม, เมื่อ, เมื่อไม่และอย่างไร "
ดูบทความที่เกี่ยวข้อง " เครื่องมือแปลง JAR ที่ดีที่สุดสำหรับ EXE ฟรีและเชิงพาณิชย์ "
Launch4j เป็นเครื่องมือข้ามแพลตฟอร์มสำหรับห่อแอ็พพลิเคชัน Java ที่กระจายเป็น jars ใน executables เนทิฟน้ำหนักเบาของ Windows ไฟล์เรียกทำงานสามารถกำหนดค่าเพื่อค้นหาเวอร์ชัน JRE ที่แน่นอนหรือใช้บันเดิลหนึ่งชุดและสามารถตั้งค่าตัวเลือกรันไทม์ได้เช่นขนาดฮีปเริ่มต้น / สูงสุด wrapper ยังมอบประสบการณ์การใช้งานที่ดีขึ้นผ่านไอคอนแอปพลิเคชันหน้าจอสแปลช pre-JRE ดั้งเดิมชื่อกระบวนการที่กำหนดเองและหน้าดาวน์โหลด Java ในกรณีที่ไม่พบ JRE ที่เหมาะสม
- เว็บไซต์ของ Launch4j
อัปเดต: GCJ ตายแล้ว มันถูกลบออกอย่างเป็นทางการจากโครงการ GCC ในปี 2559 แม้ก่อนหน้านั้นจะถูกทิ้งร้างเป็นเวลาเจ็ดปีและไม่ว่าในกรณีใด ๆ ก็ไม่เคยสมบูรณ์เพียงพอที่จะใช้เป็นทางเลือก Java ที่ใช้งานได้จริง
ไปหาคอมไพเลอร์ Java AOT อื่น
GCJ: GNU Compiler สำหรับ Javaสามารถรวบรวมซอร์สโค้ด Java เป็นรหัสเครื่องดั้งเดิมรวมถึงไฟล์ปฏิบัติการ Windows
แม้ว่าจะไม่ใช่ทุกสิ่งใน Java ที่ได้รับการสนับสนุนภายใต้ GCJ โดยเฉพาะอย่างยิ่งคอมโพเนนต์ GUI (ดู ที่ Java API ใดที่สนับสนุนอะไรบ้างมีการสนับสนุนอย่างไรคำถามจากคำถามที่พบบ่อย ) ฉันไม่ได้ใช้ GCJ มากนัก แต่จากการทดสอบที่ จำกัด ที่ฉันทำกับแอปพลิเคชันคอนโซลดูเหมือนว่าใช้ได้
ข้อเสียอย่างหนึ่งของการใช้ GCJ เพื่อสร้างไฟล์ปฏิบัติการแบบสแตนด์อโลนคือขนาดของ EXE ที่ได้นั้นอาจมีขนาดใหญ่มาก มีอยู่ครั้งหนึ่งที่ฉันรวบรวมแอปพลิเคชั่นคอนโซลเล็ก ๆ น้อย ๆ ใน GCJ และผลที่ได้คือปฏิบัติการประมาณ 1 MB (อาจมีหลายวิธีที่ฉันไม่รู้ตัวเลือกอื่นอาจเป็นโปรแกรมบีบอัดที่ปฏิบัติการได้)
ในแง่ของตัวติดตั้งโอเพ่นซอร์สNullsoft Scriptable Install Systemเป็นตัวติดตั้งแบบสคริปต์ได้ หากคุณอยากรู้อยากเห็นมีตัวอย่างที่ผู้ใช้สนับสนุนเกี่ยวกับวิธีการตรวจสอบสถานะของ JRE และติดตั้งโดยอัตโนมัติหากไม่ได้ติดตั้ง JRE ที่จำเป็น (เพื่อให้คุณรู้ว่าฉันไม่เคยใช้ NSIS มาก่อน)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ NSIS สำหรับการติดตั้งแอปพลิเคชัน Java โปรดดูคำตอบของฉันสำหรับคำถาม " วิธีที่ดีที่สุดในการเผยแพร่แอปพลิเคชัน Java คืออะไร "
คุณสามารถสร้างไฟล์แบตช์ด้วยรหัสต่อไปนี้:
start javaw -jar JarFile.jar
และแปลง. bat เป็น. exe โดยใช้ตัวแปลง. bat ใด ๆ เป็น. exe
เรากำลังใช้Install4Jเพื่อสร้างตัวติดตั้งสำหรับสภาพแวดล้อม Windows หรือ unix
สามารถปรับแต่งได้อย่างง่ายดายจนถึงจุดที่คุณต้องการเขียนสคริปต์สำหรับการกระทำพิเศษที่ไม่สามารถทำได้ด้วยบทสนทนามาตรฐาน แต่ถึงแม้ว่าเราจะติดตั้ง windows services ด้วย แต่เราก็ใช้ส่วนประกอบมาตรฐานเท่านั้น
ฉันคิดว่า Launch4J มาจาก บริษัท เดียวกัน (แค่ตัวเรียกใช้ - ไม่มีตัวติดตั้ง)
PS: น่าเศร้าที่ฉันไม่ได้รับเงินสำหรับการรับรองนี้ ฉันแค่ชอบเครื่องมือนั้น
Java Web Startล่าสุดได้รับการปรับปรุงเพื่อให้สามารถใช้งานออฟไลน์ได้ดีรวมถึงอนุญาตให้ "ติดตั้งในเครื่อง" มันคุ้มค่าที่จะดู
แก้ไข 2018: Java Web Start ไม่ได้รวมอยู่ใน JDK ใหม่ล่าสุดอีกต่อไป Oracle กำลังมุ่งสู่การ "ปรับใช้แอปของคุณแบบโลคัลด้วย JRE ที่ล้อมรอบ" แทน
หากคุณจำเป็นต้องแปลงโปรแกรมทั้งหมดของคุณไปยังรหัสพื้นเมืองเช่นรับ exe บวกที่กำลังมีExcelsiorJET ฉันพบว่าใช้งานได้ดีและเป็นทางเลือกแทนการรวม JRE
IMHO JSmoothดูเหมือนจะทำได้ดีมาก
ฉันจะบอกว่า launch4j เป็นเครื่องมือที่ดีที่สุดสำหรับการแปลงซอร์สโค้ดจาวา (.java) ไปเป็นไฟล์. exe คุณสามารถรวม jre กับมันเพื่อการจำหน่ายและ exe ก็ยังสามารถเป็นไอคอนได้ แม้ว่าขนาดของแอปพลิเคชันจะเพิ่มขึ้น แต่ก็ทำให้แน่ใจว่าแอปพลิเคชันจะทำงานได้อย่างสมบูรณ์แม้ว่าผู้ใช้จะไม่ได้ติดตั้ง jre นอกจากนี้ยังทำให้แน่ใจว่าคุณสามารถให้ jre เฉพาะที่จำเป็นสำหรับแอปของคุณโดยที่ผู้ใช้ไม่ต้องติดตั้งแยกต่างหาก แต่น่าเสียดายที่จาวาสูญเสียความสำคัญของมัน การสนับสนุนหลายแพลตฟอร์มมันถูกละเว้นโดยสิ้นเชิงและรองรับแอพขั้นสุดท้ายสำหรับ windows เท่านั้น แต่นั่นไม่ใช่เรื่องใหญ่หากคุณจัดเลี้ยงเฉพาะผู้ใช้ windows
อีกวิธีหนึ่งคุณสามารถใช้ตัวแปล java-to-c (เช่นJCGO ) และรวบรวมไฟล์ C ที่สร้างขึ้นเป็นไฟล์ไบนารี่พื้นเมือง (.exe) สำหรับแพลตฟอร์มเป้าหมาย
ฉันสามารถได้รับการอภัยจากการแปลงโปรแกรมจาวาเป็นแอปพลิเคชัน. exe และฉันมีเหตุผลของฉัน Major หนึ่งที่โปรแกรม Java สามารถคอมไพล์ไฟล์ jar จาก IDE จำนวนมาก เมื่อโปรแกรมอยู่ในรูปแบบ. jar สามารถทำงานได้ในหลายแพลตฟอร์มซึ่งต่างจาก. exe ซึ่งจะทำงานในสภาพแวดล้อมที่ จำกัด เท่านั้น ฉันมีความคิดที่ว่าโปรแกรม Java ไม่สามารถแปลงเป็น exe ได้เว้นแต่จะมีความจำเป็นมาก หนึ่งสามารถเขียนไฟล์. bat ที่รันโปรแกรม Java ขณะที่เป็นไฟล์ jar
ถ้าจำเป็นจริงๆที่ต้องแปลงเป็น exe ตัวแปลง Jar2Exe จะทำอย่างเงียบ ๆ และยังสามารถแนบไลบรารี่ที่คอมไพล์ร่วมกับแอพพลิเคชั่นหลักได้