มีเครื่องมือไม่กี่อย่างที่นั่น ( Excelsior JET , ฯลฯ ) ที่อ้างว่าแปลงแอป Java ให้เป็นไฟล์ปฏิบัติการดั้งเดิม ( *.exe
) อย่างไรก็ตามมันเป็นความเข้าใจของฉันว่าเครื่องมือเหล่านี้เป็นเพียงการสร้าง wrappers พื้นเมืองที่เรียกใช้ / ดำเนินการjava
จากเปลือกหรือบรรทัดคำสั่ง
หากความเข้าใจนั้นไม่ถูกต้องฉันไม่เห็นว่ามันจะเป็นไปได้ หาก JVM ที่ทำงานอยู่ ( java
กระบวนการ) เป็นล่ามประสิทธิภาพสูงโดยการโหลด bytecode จาก Java classfiles ในทันทีฉันไม่เห็นว่าแอป Java (คอลเลกชันของไฟล์ bytecode ที่ทำหน้าที่เป็นอินพุตของ JVM) จะเป็นอย่างไร แปลงเป็นปฏิบัติการจริง ๆ
นี้เป็นเพราะกระบวนการ JVM เป็นแล้วปฏิบัติการพื้นเมืองที่ใช้ชุดของไฟล์ bytecode เป็น input หากต้องการรวมไฟล์ bytecode เหล่านั้นและกระบวนการ JVM เข้าด้วยกันเป็นโปรแกรมปฏิบัติการแบบเนทีฟแบบรวมไม่สามารถทำได้โดยไม่ต้องเขียน JVM และยกเลิกการแยกจากข้อมูลจำเพาะ JVM อย่างสมบูรณ์
ดังนั้นผมจึงถาม: วิธีการทำเครื่องมือเหล่านี้จริง "เปลี่ยน" คลาสไฟล์จาวาเป็นปฏิบัติการพื้นเมืองหรือพวกเขา?