อะไรคือความแตกต่างระหว่างJVM , JDK , JREและOpenJDK ?
ฉันกำลังเขียนโปรแกรมใน Java และฉันพบวลีเหล่านี้ความแตกต่างระหว่างพวกเขาคืออะไร
อะไรคือความแตกต่างระหว่างJVM , JDK , JREและOpenJDK ?
ฉันกำลังเขียนโปรแกรมใน Java และฉันพบวลีเหล่านี้ความแตกต่างระหว่างพวกเขาคืออะไร
คำตอบ:
โปรแกรม Java Virtual Machine (JVM) เป็นเครื่องเสมือนที่รัน bytecodes Java JVM ไม่เข้าใจซอร์สโค้ด Java นั่นเป็นเหตุผลที่คุณต้องรวบรวม*.java
ไฟล์ของคุณเพื่อรับ*.class
ไฟล์ที่มี bytecode ที่ JVM เข้าใจ นอกจากนี้ยังเป็นเอนทิตีที่อนุญาตให้ Java เป็น "ภาษาแบบพกพา" ( เขียนครั้งเดียวทำงานได้ทุกที่ ) แท้จริงแล้วมีการใช้งานเฉพาะของ JVM สำหรับระบบที่แตกต่างกัน (Windows, Linux, macOS, ดูรายการ Wikipedia ) จุดมุ่งหมายคือด้วยไบต์เดียวกันพวกเขาทั้งหมดให้ผลลัพธ์เดียวกัน
เพื่ออธิบายความแตกต่างระหว่าง JDK และ JRE สิ่งที่ดีที่สุดคือการอ่านเอกสารของ Oracleและดูแผนภาพ:
Java Runtime Environment (JRE)
Java Runtime Environment (JRE) จัดเตรียมไลบรารี, Java Virtual Machine และคอมโพเนนต์อื่นเพื่อรันแอ็พเล็ตและแอ็พพลิเคชันที่เขียนด้วยภาษาการเขียนโปรแกรม Java นอกจากนี้เทคโนโลยีการปรับใช้ที่สำคัญสองอย่างเป็นส่วนหนึ่งของ JRE: Java Plug-in ซึ่งทำให้แอปเพล็ตสามารถทำงานในเบราว์เซอร์ยอดนิยม และ Java Web Start ซึ่งปรับใช้แอพพลิเคชันแบบสแตนด์อโลนผ่านเครือข่าย เป็นพื้นฐานสำหรับเทคโนโลยีในแพลตฟอร์ม Java 2, Enterprise Edition (J2EE) สำหรับการพัฒนาและปรับใช้ซอฟต์แวร์ระดับองค์กร JRE ไม่มีเครื่องมือและยูทิลิตี้เช่นคอมไพเลอร์หรือดีบั๊กสำหรับการพัฒนาแอปเพล็ตและแอปพลิเคชัน
ชุดพัฒนา Java (JDK)
JDK เป็นชุดของ JRE และประกอบด้วยทุกอย่างที่อยู่ใน JRE รวมถึงเครื่องมือต่าง ๆ เช่นคอมไพเลอร์และดีบั๊กที่จำเป็นสำหรับการพัฒนาแอปเพล็ตและแอปพลิเคชัน
โปรดทราบว่า Oracle ไม่ใช่เครื่องมือเดียวที่ให้บริการ JDK
OpenJDKเป็นการใช้งานโอเพ่นซอร์สของ JDK และเป็นฐานสำหรับ Oracle JDK Oracle JDK และ OpenJDK แทบจะไม่แตกต่างกัน
ความแตกต่างที่ระบุไว้ในบล็อกนี้:
ถาม: อะไรคือความแตกต่างระหว่างซอร์สโค้ดที่พบในที่เก็บ OpenJDK และรหัสที่คุณใช้ในการสร้าง Oracle JDK
ตอบ: มันใกล้เคียงกันมาก - กระบวนการสร้างของเราสำหรับ Oracle JDK ปล่อยการสร้างบน OpenJDK 7 โดยเพิ่มเพียงไม่กี่ชิ้นเช่นรหัสการปรับใช้ซึ่งรวมถึงการติดตั้ง Java ปลั๊กอินของ Java และ Java WebStart ของออราเคิล ส่วนประกอบของบุคคลเช่นตัวแรสเตอร์กราฟิกส่วนประกอบโอเพ่นซอร์สของบุคคลที่สามบางตัวเช่น Rhino และบิตและชิ้นส่วนเล็กน้อยที่นี่และที่นั่นเช่นเอกสารเพิ่มเติมหรือแบบอักษรของบุคคลที่สาม ความมุ่งมั่นของเราคือการเปิดแหล่งที่มาทุกชิ้นของ Oracle JDK ยกเว้นสิ่งที่เราพิจารณาคุณสมบัติเชิงพาณิชย์เช่น JRockit Mission Control (ยังไม่พร้อมใช้งานใน Oracle JDK) และแทนที่ส่วนประกอบของบุคคลที่สามที่เข้าร่วมด้วยทางเลือกโอเพ่นซอร์ส ระหว่างฐานรหัส
อัปเดตสำหรับ JDK 11 - บทความจาก Donald Smith พยายามที่จะแยกแยะความแตกต่างระหว่าง Oracle JDK และ OpenJDK ของ Oracle: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11- และหลังจากนั้น
JVM เป็น Java Virtual Machine - จริงๆแล้วมันรัน Java ByteCode
JRE เป็น Java Runtime Environment - ซึ่งมี JVM อยู่เหนือสิ่งอื่นใดและเป็นสิ่งที่คุณต้องใช้ในการรันโปรแกรม Java
JDK เป็น Java Development Kit - เป็น JRE แต่ด้วย javac (ซึ่งเป็นสิ่งที่คุณต้องรวบรวมซอร์สโค้ด Java) และเพิ่มเครื่องมือการเขียนโปรแกรมอื่น ๆ
OpenJDK เป็นการใช้งาน JDK ที่เฉพาะเจาะจง
other things
บรรจุอยู่ใน JVM พวกเขาคืออะไร บทความนี้ตอบคำถามอย่างเต็มที่หรือไม่ - javabeat.net/what-is-the-difference-between-jrejvm-and-jdk
JDK (ชุดพัฒนา Java)
Java Developer Kit มีเครื่องมือที่จำเป็นสำหรับการพัฒนาโปรแกรม Java และ JRE เพื่อรันโปรแกรม เครื่องมือประกอบด้วยคอมไพเลอร์ (javac.exe), ตัวเรียกใช้งานแอปพลิเคชัน Java (java.exe), Appletviewer, ฯลฯ ...
คอมไพเลอร์แปลงรหัส Java เป็นรหัสไบต์ Java application launcher เปิด JRE โหลดคลาสและเรียกใช้เมธอดหลัก
คุณต้องการ JDK ถ้าคุณต้องการเขียนโปรแกรมของคุณเองและรวบรวมมัน สำหรับการรันโปรแกรมจาวา JRE ก็เพียงพอแล้ว
JRE มีเป้าหมายสำหรับการดำเนินการกับไฟล์ Java
เช่น JRE = JVM + คลาส Java Packages (เช่น util, math, lang, awt, swing ฯลฯ ) + runtime library
JDK เป็นเป้าหมายหลักสำหรับการพัฒนาจาวา เช่นคุณสามารถสร้างไฟล์ Java (ด้วยความช่วยเหลือของแพ็คเกจ Java) รวบรวมไฟล์ Java และเรียกใช้ไฟล์ java
JRE (สภาพแวดล้อมรันไทม์ของ Java)
Java Runtime Environment มี JVM ไลบรารีคลาสและไฟล์สนับสนุนอื่น ๆ มันไม่มีเครื่องมือในการพัฒนาใด ๆ เช่นคอมไพเลอร์ดีบักเกอร์ ฯลฯ จริงๆแล้ว JVM จะรันโปรแกรมและใช้ไลบรารีคลาสและไฟล์สนับสนุนอื่น ๆ ที่มีให้ใน JRE หากคุณต้องการรันโปรแกรมจาวาใด ๆ คุณจะต้องติดตั้ง JRE ไว้ในระบบ
Java Virtual Machine ให้วิธีการรันโค้ดแบบไม่ขึ้นกับแพลตฟอร์ม นั่นหมายถึงการคอมไพล์ครั้งเดียวในเครื่องใดก็ได้และรันมันที่ไหนก็ได้ (เครื่องใด ๆ )
JVM (Java Virtual Machine)
ตามที่เราทุกคนทราบเมื่อเรารวบรวมไฟล์ Java ผลลัพธ์ไม่ได้เป็น 'exe' แต่เป็นไฟล์ '.class' ไฟล์ '.class' ประกอบด้วยโค้ด Java byte ซึ่ง JVM เข้าใจได้ Java Virtual Machine ตีความรหัสไบต์ลงในรหัสเครื่องขึ้นอยู่กับระบบปฏิบัติการและฮาร์ดแวร์รวมกัน เป็นผู้รับผิดชอบทุกสิ่งเช่นการรวบรวมขยะการตรวจสอบขอบเขตของอาเรย์และอื่น ๆ … JVM ขึ้นอยู่กับแพลตฟอร์ม
JVM เรียกว่า "เสมือน" เนื่องจากเป็นส่วนติดต่อของเครื่องที่ไม่ได้ขึ้นอยู่กับระบบปฏิบัติการและสถาปัตยกรรมฮาร์ดแวร์ของเครื่อง ความเป็นอิสระจากฮาร์ดแวร์และระบบปฏิบัติการนี้เป็นรากฐานที่สำคัญของค่าจาวาของโปรแกรมจาวา
มีการใช้งาน JVM ที่แตกต่างกัน สิ่งเหล่านี้อาจแตกต่างกันในเรื่องของประสิทธิภาพความน่าเชื่อถือความเร็ว ฯลฯ การใช้งานเหล่านี้จะแตกต่างกันไปในพื้นที่ที่สเปคของ Java ไม่ได้กล่าวถึงวิธีการใช้คุณสมบัติเช่นวิธีการทำงานของกระบวนการรวบรวมขยะขึ้นอยู่กับ JVM กำหนดวิธีเฉพาะในการทำเช่นนี้
Java เครื่องเสมือน (JVM)เป็นเครื่องเสมือนที่สามารถรัน Java bytecode มันเป็นองค์ประกอบการเรียกใช้รหัสของแพลตฟอร์มซอฟต์แวร์ Java
Java Development Kit (JDK)เป็นผลิตภัณฑ์ออราเคิลคอร์ปอเรชั่นมุ่งเป้าไปที่นักพัฒนา Java นับตั้งแต่มีการเปิดตัวจาวามันได้กลายเป็น Java Software Development Kit (SDK) ที่ใช้กันอย่างแพร่หลายมากที่สุด
Java Runtime Environmentเรียกอีกอย่างว่า Java Runtime, Runtime Environment
OpenJDK (Open Java Development Kit)เป็นการใช้งานฟรีและโอเพ่นซอร์สของภาษาการเขียนโปรแกรม Java เป็นผลมาจากความพยายามของ Sun Microsystems ที่เริ่มขึ้นในปี 2549 การดำเนินงานนี้ได้รับอนุญาตภายใต้ GNU General Public License (GPL) โดยมีข้อยกเว้นในการเชื่อมโยง
JVMเป็นโค้ด Java ของเครื่องเสมือนที่เรียกใช้งาน
JREเป็นสภาวะแวดล้อม (ไลบรารีมาตรฐานและ JVM) ที่จำเป็นสำหรับการรันแอ็พพลิเคชัน Java
JDKเป็น JRE พร้อมเครื่องมือสำหรับนักพัฒนาและเอกสารประกอบ
OpenJDKเป็นรุ่นโอเพ่นซอร์สของ JDK ซึ่งแตกต่างจาก JDK ทั่วไปที่ Oracle เป็นเจ้าของ
JDK (ชุดพัฒนา Java):
JRE (สภาพแวดล้อมรันไทม์ของ Java)
Java Runtime Environment มี JVM ไลบรารีคลาสและไฟล์สนับสนุนอื่น ๆ JRE มีเป้าหมายสำหรับการดำเนินการกับไฟล์ Java
JVM (Java Virtual Machine)
JVM ตีความรหัสไบต์ลงในรหัสเครื่องขึ้นอยู่กับระบบปฏิบัติการและฮาร์ดแวร์รวมกัน รับผิดชอบทุกสิ่งเช่นการรวบรวมขยะการตรวจสอบขอบเขตของอาเรย์และอื่น ๆ ... Java Virtual Machine นำเสนอวิธีการรันโค้ดที่ไม่ขึ้นกับแพลตฟอร์ม
JDK - รวบรวม java กับ ByteCode ประกอบด้วย debuggers, Compilers เป็นต้น
javac file.java // Is executed using JDK
JVM - เรียกใช้งานโค้ดไบต์ JVM เป็นสิ่งที่ทำให้แพลตฟอร์ม Java เป็นอิสระ แต่ JVM แตกต่างกันไปสำหรับแพลตฟอร์ม
JRE - JVM พร้อมกับ java runtime library เพื่อรันโปรแกรม java
อีกแง่มุมมูลค่าการกล่าวขวัญ:
JDK (ชุดพัฒนา java)
คุณจะต้องใช้เพื่อการพัฒนาเช่นชื่อแนะนำ
ตัวอย่างเช่น บริษัท ซอฟต์แวร์จะมีการติดตั้ง JDK ในคอมพิวเตอร์ของพวกเขาเพราะพวกเขาจะต้องพัฒนาซอฟต์แวร์ใหม่ที่เกี่ยวข้องกับการรวบรวมและเรียกใช้โปรแกรม Java ของพวกเขาเช่นกัน
ดังนั้นเราสามารถพูดได้ว่า JDK = JRE + JVM
JRE (สภาพแวดล้อมรันไทม์ java)
จำเป็นต้องเรียกใช้โปรแกรม Java คุณไม่สามารถคอมไพล์โปรแกรม Java ด้วยได้
ตัวอย่างเช่นผู้ใช้คอมพิวเตอร์ทั่วไปที่ต้องการเรียกใช้เกมออนไลน์บางเกมจะต้องมี JRE ในระบบของเขาเพื่อเรียกใช้โปรแกรม Java
JVM (เครื่องเสมือน Java)
ในขณะที่คุณอาจรู้ว่ามันทำงาน bytecodes มันทำให้แพลตฟอร์ม Java เป็นอิสระเพราะมันรัน.class
ไฟล์ที่คุณได้รับหลังจากที่คุณรวบรวมโปรแกรม Java โดยไม่คำนึงถึงว่าคุณรวบรวมใน Windows, Mac หรือ Linux
เปิด JDK
อย่างที่ฉันพูดไว้ข้างต้น ตอนนี้ JDK ทำโดย บริษัท ต่าง ๆ หนึ่งในนั้นคือโอเพ่นซอร์สและฟรีสำหรับการใช้งานสาธารณะคือ OpenJDK ในขณะที่บาง บริษัท ก็เป็น JRockit JDK หรือ IBM JDK ของ Oracle Corporation
อย่างไรก็ตามพวกเขาทั้งหมดอาจปรากฏเหมือนกันกับผู้ใช้ทั่วไป
ข้อสรุป
หากคุณเป็นโปรแกรมเมอร์ Java คุณจะต้องมี JDK ในระบบของคุณและแพ็คเกจนี้จะรวม JRE และ JVM ด้วย แต่ถ้าคุณเป็นผู้ใช้ทั่วไปที่ชอบเล่นเกมออนไลน์คุณจะต้องใช้ JRE และแพ็คเกจนี้จะไม่มี JDK อยู่ในนั้น .
ในคำอื่น ๆ JDK เป็นปู่ JRE เป็นพ่อและ JVM เป็นลูกชายของพวกเขา
Java เป็นภาษาและรวมถึงไวยากรณ์ที่เข้มงวดและพิมพ์อย่างยิ่งที่คุณควรจะคุ้นเคยมากในตอนนี้
Java 2 Platform, Standard Edition หรือที่รู้จักกันในนาม J2SE เรียกว่าแพลตฟอร์มและรวมคลาสต่างๆในแพ็คเกจ java.lang และ java.io มันเป็นบล็อคอาคารที่แอปพลิเคชัน Java ถูกสร้างขึ้น
Java Virtual Machine หรือ JVM เป็นเครื่องเสมือนซอฟต์แวร์ที่รันโค้ด Java ที่คอมไพล์แล้ว เนื่องจากโค้ด Java ที่คอมไพล์เป็น bytecode เท่านั้น JVM มีหน้าที่รับผิดชอบในการรวบรวม bytecode นั้นให้เป็นรหัสเครื่องก่อนที่จะรัน (ซึ่งมักเรียกว่า Just In Time Compiler หรือ JIT Compiler) JVM ยังดูแลการจัดการหน่วยความจำเพื่อให้รหัสแอปพลิเคชันไม่จำเป็นต้อง
Java Development Kit หรือ JDK เป็นและยังคงเป็นส่วนหนึ่งของซอฟต์แวร์ที่นักพัฒนา Java ใช้เพื่อสร้างแอปพลิเคชัน Java มันมีตัวแปลภาษา Java, เครื่องกำเนิดเอกสาร, เครื่องมือสำหรับการทำงานกับรหัสเนทีฟและ (โดยทั่วไป) ซอร์สโค้ด Java สำหรับแพลตฟอร์มเพื่อเปิดใช้งานคลาสการดีบักแพลตฟอร์ม
Java Runtime Environment หรือ JRE นั้นเป็นและยังคงเป็นส่วนหนึ่งของซอฟต์แวร์ที่ผู้ใช้ดาวน์โหลดเพื่อเรียกใช้แอปพลิเคชัน Java ที่คอมไพล์แล้ว มันรวม JVM แต่ไม่มีเครื่องมือการพัฒนาใด ๆ ที่รวมอยู่ใน JDK อย่างไรก็ตาม JDK ประกอบด้วย JRE
JVM:ข้อกำหนดซึ่งอธิบายวิธี / ทรัพยากรเพื่อเรียกใช้โปรแกรมจาวา เรียกใช้งานโค้ดไบต์และทำให้แพลตฟอร์ม Java เป็นอิสระ ในการทำเช่นนั้นจะแตกต่างกันไปตามแพลตฟอร์ม JVM สำหรับ windows ไม่สามารถทำงานเป็น JVM สำหรับ UNIX
JRE:การนำ JVM ไปปฏิบัติ (JVM + ไลบรารีรันไทม์)
JDK:คอมไพเลอร์ JRE + java และเครื่องมือสำคัญอื่น ๆ เพื่อสร้างโปรแกรม Java ตั้งแต่เริ่มต้น
JVM : นี่หมายถึงการแปลรหัสไบต์เป็นจริงขึ้นอยู่กับแพลตฟอร์ม ตัวอย่างเช่น: ในแพลตฟอร์ม Windows precess ' java.exe ' หรือ ' javaw.exe ' เป็นกระบวนการ jvm
JDK : เป็นชุดเครื่องมือที่มีไลบรารีและยูทิลิตี้ที่จำเป็นสำหรับการพัฒนาและดำเนินการจาวาโปรแกรม / แอปพลิเคชัน
JRE : เป็นสภาวะแวดล้อมการเรียกใช้งานสำหรับจาวาแอ็พพลิเคชันเท่านั้นสนับสนุนการอ้างอิงแบบรันไทม์รวมถึง jvm สำหรับโปรแกรมที่คอมไพล์ หากเราต้องการรวบรวมโปรแกรมจาวาเราจำเป็นต้องมี jdk
JVM: เครื่องเสมือนของ java บอกเครื่องว่าจะทำอย่างไรกับรหัส Java คุณไม่สามารถดาวน์โหลด JVM ตามที่เป็นอยู่ มันมาพร้อมกับส่วนประกอบอื่น ๆ
JRE: องค์ประกอบอื่น ๆ ที่อ้างถึงข้างต้นคือ JRE เป็น JVM + ไหอื่น ๆ เพื่อสร้างสภาพแวดล้อมรันไทม์
JDK: ประกอบด้วย JRE (ซึ่งจะมี JVM) เมื่อคุณได้รับ JDK คุณไม่จำเป็นต้องติดตั้ง JRE และ JVM แยกต่างหาก มันมีคอมไพเลอร์ซึ่งรวบรวมไฟล์. java ของคุณเป็นไฟล์. class
JVM
JVM (Java Virtual Machine) เป็นเครื่องที่เป็นนามธรรม มันเป็นข้อกำหนดที่ให้สภาพแวดล้อมรันไทม์ซึ่ง java bytecode สามารถดำเนินการได้ JVMs พร้อมใช้งานสำหรับแพลตฟอร์มฮาร์ดแวร์และซอฟต์แวร์จำนวนมาก
JRE
JRE เป็นตัวย่อสำหรับ Java Runtime Environment มันถูกใช้เพื่อจัดเตรียมสภาวะแวดล้อมรันไทม์มันเป็นการใช้งานของ JVM มันมีอยู่จริงมันมีชุดของไลบรารี + ไฟล์อื่น ๆ ที่ JVM ใช้ที่รันไทม์
JDK
JDK เป็นตัวย่อสำหรับ Java Development Kit มีอยู่จริงมีเครื่องมือในการพัฒนา JRE +
ลิงก์: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
สรุป:
หากคุณต้องการพัฒนาเป็นจาวาคุณต้องมี JDK แต่ถ้าคุณต้องการเรียกใช้จาวาคุณต้องมี JRE
JVM Java Virtual Machine จริงเรียกใช้ java bytecode มันเป็นบล็อกการดำเนินการบนแพลตฟอร์ม JAVA มันจะแปลงรหัสไบต์เป็นรหัสเครื่อง
JRE Java Runtime Environment จัดเตรียมข้อกำหนดขั้นต่ำสำหรับการเรียกใช้งานแอ็พพลิเคชัน Java ประกอบด้วย Java Virtual Machine (JVM), คลาสหลักและไฟล์ที่สนับสนุน
JDK Java Development Kit มีเครื่องมือทั้งหมดในการพัฒนาซอฟต์แวร์แอปพลิเคชันของคุณ มันเป็น JRE + JVM
Open JDK เป็นการนำ Java Platform ไปใช้ฟรีและเปิดกว้าง
ในแง่คนธรรมดา: - JDK = JRE + เครื่องมือการพัฒนา / การดีบักที่ JDK เป็นแพคเกจที่สมบูรณ์ของเราที่จะทำงานกับ Java จากการสร้างการรวบรวมจนถึงการเรียกใช้ในมืออื่น ๆ JRE เป็นเพียงการทำงานของรหัส (รหัสไบต์)
หมายเหตุ: - ไม่ว่าเราจะติดตั้ง JDK หรือ JRE JVM จะมาพร้อมกับแพ็คเกจและ JVM เป็นส่วนที่คอมไพเลอร์ JIT แปลงรหัสไบต์เป็นรหัสเฉพาะเครื่อง
เพียงอ่านบทความเกี่ยวกับJDK, JRE, JVM และ JIT
JDK : แพคเกจที่สมบูรณ์ซึ่งคุณต้องเขียนและเรียกใช้รหัสจาวา
OpenJDK : การใช้งาน JDK อย่างเป็นอิสระเพื่อทำให้ดีขึ้นมาก
JVM : แปลงโค้ด Java เป็น bytecode และให้ข้อมูลจำเพาะที่บอกว่าโค้ด Java ควรจะรวบรวมโหลดตรวจสอบตรวจสอบข้อผิดพลาดและดำเนินการอย่างไร
JRE : การนำ JVM ไปใช้ซึ่งบางไลบรารี Java ถูกใช้เพื่อรันโปรแกรม
JREเรียกใช้งานแอปพลิเคชัน แต่ JVM อ่านบรรทัดคำแนะนำทีละบรรทัดดังนั้นจึงเป็นล่าม
เครื่องมือพัฒนาJDK = JRE +
JRE = JVM + คลาสไลบรารี
JVMย่อมาจาก Java Virtual Machine , JVM เป็นองค์ประกอบหลักของสถาปัตยกรรมจาวา JVM เขียนด้วยภาษาการเขียนโปรแกรม C คอมไพเลอร์ Java สร้างโค้ดไบต์สำหรับ JVM JVM กำลังอ่านโค้ดไบต์เพื่อตรวจสอบโค้ดไบต์และเชื่อมโยงโค้ดกับไลบรารี
JREย่อเป็นJava Runtime Environment มันจัดเตรียมสภาพแวดล้อมที่รันไทม์ มันมีอยู่จริง มี JVM + ชุดไลบรารี (jar) + ไฟล์อื่น ๆ
JDKย่อเป็น Java Development Kit มันคือการพัฒนาแอปพลิเคชันจาวา และยังแก้จุดบกพร่องและตรวจสอบการใช้งานจาวา JDK มีเครื่องมือในการพัฒนา JRE + (javac, java)
OpenJDK OpenJDK เป็นเวอร์ชันโอเพ่นซอร์สของ sun JDK Oracle JDK เป็น JDK อย่างเป็นทางการของซัน