JDK, JRE และ JVM ทั้งสามนั้นต้องพึ่งพาอาศัยกัน และไม่มีจุดร่วม จึงไม่มีประสิทธิภาพที่จะระบุความแตกต่างในรูปแบบตาราง อย่างไรก็ตาม เราจะพูดถึงสิ่งเหล่านี้ในย่อหน้าต่อไปนี้
JVM
JVM เป็นตัวย่อสำหรับเครื่องเสมือน Java ซึ่งโดยทั่วไปแล้วเป็นข้อกำหนดที่ให้สภาพแวดล้อมรันไทม์ซึ่งสามารถเรียกใช้โค้ด Java byte ได้นั่นคือเป็นสิ่งที่เป็นนามธรรมและการนำไปใช้นั้นเป็นอิสระในการเลือกอัลกอริทึมและให้บริการโดย Sun และ บริษัท อื่น ๆ . เป็น JVM ซึ่งมีหน้าที่ในการแปลงรหัส Byte เป็นรหัสเฉพาะเครื่อง นอกจากนี้ยังสามารถเรียกใช้โปรแกรมที่เขียนในภาษาอื่นและคอมไพล์เป็น Java bytecode ได้อีกด้วย JVM ทำงานดังกล่าว:โหลดโค้ด ตรวจสอบโค้ด รันโค้ด จัดเตรียมสภาพแวดล้อมรันไทม์
JRE
JRE คือสภาพแวดล้อมรันไทม์ของ Java ซึ่งเป็นการนำ JVM ไปใช้ เช่น ข้อกำหนดที่กำหนดไว้ใน JVM ถูกนำไปใช้และสร้างสภาพแวดล้อมที่สอดคล้องกันสำหรับการประมวลผลโค้ด JRE ประกอบด้วยไบนารี Java ส่วนใหญ่และคลาสอื่นๆ เพื่อรันโปรแกรมเหมือนกับ JVM ที่มีอยู่จริง นอกเหนือจากไบนารี Java JRE ยังประกอบด้วยเทคโนโลยีต่างๆ ของการปรับใช้ ส่วนต่อประสานกับผู้ใช้เพื่อโต้ตอบกับการเรียกใช้โค้ด ไลบรารีพื้นฐานบางส่วนสำหรับฟังก์ชันต่างๆ ภาษาและไลบรารีที่ใช้ยูทิลิตี้
JDK
JDK เป็นตัวย่อสำหรับ Java Development Kit ซึ่งรวมถึงเครื่องมือทั้งหมด ปฏิบัติการและไบนารีที่จำเป็นในการคอมไพล์ ดีบัก และรันโปรแกรม Java JDK นั้นขึ้นอยู่กับแพลตฟอร์ม เช่น มีตัวติดตั้งแยกต่างหากสำหรับระบบ Windows, Mac และ Unix JDK มีทั้ง JVM และ JRE และมีหน้าที่รับผิดชอบในการเรียกใช้โค้ดทั้งหมด เป็นเวอร์ชันของ JDK ซึ่งแสดงถึงเวอร์ชันของ Java
ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่าง JDK,JRE และ JVM
ซีเนียร์ เลขที่ | คีย์ | JDK | JRE | JVM |
---|---|---|---|---|
1 | คำจำกัดความ | JDK (Java Development Kit) เป็นชุดพัฒนาซอฟต์แวร์เพื่อพัฒนาแอปพลิเคชันใน Java นอกจาก JRE แล้ว JDK ยังมีเครื่องมือในการพัฒนาอีกจำนวนมาก (คอมไพเลอร์, JavaDoc, Java Debugger เป็นต้น) | JRE (Java Runtime Environment) เป็นการนำ JVM ไปใช้และถูกกำหนดให้เป็นแพ็คเกจซอฟต์แวร์ที่มีไลบรารีคลาส Java ร่วมกับ Java Virtual Machine (JVM) และส่วนประกอบอื่นๆ เพื่อเรียกใช้แอปพลิเคชันที่เขียนในการเขียนโปรแกรม Java | JVM (Java Virtual Machine) เป็นเครื่องนามธรรมที่ขึ้นอยู่กับแพลตฟอร์มและมีสามแนวคิดเป็นข้อกำหนด เอกสารที่อธิบายข้อกำหนดของการนำ JVM ไปใช้งาน การนำไปใช้ โปรแกรมคอมพิวเตอร์ที่ตรงตามข้อกำหนด JVM และอินสแตนซ์ การนำไปใช้ ที่รันโค้ด Java byte จัดเตรียมสภาพแวดล้อมรันไทม์สำหรับการรันโค้ด Java byte |
2 | ฟังก์ชั่นหลัก | JDK ใช้สำหรับการประมวลผลโค้ดเป็นหลักและมีฟังก์ชันการพัฒนาที่สำคัญ | ในทางกลับกัน JRE มีหน้าที่หลักในการสร้างสภาพแวดล้อมสำหรับการเรียกใช้โค้ด | JVM ในอีกทางหนึ่งระบุการใช้งานทั้งหมดและรับผิดชอบในการจัดเตรียมการใช้งานเหล่านี้ให้กับ JRE |
3 | ความเป็นอิสระของแพลตฟอร์ม | JDK ขึ้นอยู่กับแพลตฟอร์ม เช่น สำหรับแพลตฟอร์มที่แตกต่างกันซึ่งต้องใช้ JDK | ไลค์ของ JDK JRE ก็ขึ้นอยู่กับแพลตฟอร์มเช่นกัน | JVM เป็นอิสระจากแพลตฟอร์ม |
4 | เครื่องมือ | เนื่องจาก JDK มีหน้าที่รับผิดชอบในการพัฒนาเฉพาะ ดังนั้นจึงมีเครื่องมือสำหรับการพัฒนา การดีบัก และตรวจสอบแอปพลิเคชัน Java | ในทางกลับกัน JRE ไม่มีเครื่องมือเช่นคอมไพเลอร์หรือดีบักเกอร์ ฯลฯ แต่มีคลาสไลบรารีและไฟล์สนับสนุนอื่น ๆ ที่ JVM ต้องการเพื่อรันโปรแกรม | JVM ไม่รวมเครื่องมือพัฒนาซอฟต์แวร์ |
5 | การนำไปใช้ | JDK =Java Runtime Environment (JRE) + เครื่องมือสำหรับการพัฒนา | JRE =Java Virtual Machine (JVM) + ไลบรารีเพื่อเรียกใช้แอปพลิเคชัน | JVM =เฉพาะสภาวะแวดล้อมรันไทม์สำหรับการรันโค้ด Java byte |