อะไรคือความแตกต่างระหว่าง JVM, JDK, JRE และ OpenJDK?


334

อะไรคือความแตกต่างระหว่างJVM , JDK , JREและOpenJDK ?

ฉันกำลังเขียนโปรแกรมใน Java และฉันพบวลีเหล่านี้ความแตกต่างระหว่างพวกเขาคืออะไร


คำตอบ:


375

JVM

โปรแกรม Java Virtual Machine (JVM) เป็นเครื่องเสมือนที่รัน bytecodes Java JVM ไม่เข้าใจซอร์สโค้ด Java นั่นเป็นเหตุผลที่คุณต้องรวบรวม*.javaไฟล์ของคุณเพื่อรับ*.classไฟล์ที่มี bytecode ที่ JVM เข้าใจ นอกจากนี้ยังเป็นเอนทิตีที่อนุญาตให้ Java เป็น "ภาษาแบบพกพา" ( เขียนครั้งเดียวทำงานได้ทุกที่ ) แท้จริงแล้วมีการใช้งานเฉพาะของ JVM สำหรับระบบที่แตกต่างกัน (Windows, Linux, macOS, ดูรายการ Wikipedia ) จุดมุ่งหมายคือด้วยไบต์เดียวกันพวกเขาทั้งหมดให้ผลลัพธ์เดียวกัน

JDK และ JRE

เพื่ออธิบายความแตกต่างระหว่าง 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

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- และหลังจากนั้น


@ alain.janinm ดังนั้นคุณจะเลือก OracleJDK หรือ OpenJDK สำหรับการพัฒนาของคุณหรือไม่
Pacerier

@Pacerier ฉันเคยใช้ OracleJDK ในที่ทำงาน แต่ฉันไม่ได้ทำอะไรกับ OpenJDK :) จริงๆแล้วฉันไม่เคยเจอความแตกต่างที่เป็นรูปธรรมที่ทำให้ฉันเลือกระหว่างพวกเขา หากคุณต้องการโอเพ่นซอร์สและไม่จำเป็นต้องใช้ลิขสิทธิ์ที่เป็นกรรมสิทธิ์ให้ไปที่ OpenJDK
alain.janinm

1
โปรดบอกฉันว่าฉันถูกต้องเกี่ยวกับสิ่งต่อไปนี้: โดยทั่วไปแล้วไม่มีแอปพลิเคชัน Java ตัวจริงที่สามารถรันได้หากไม่มี JRE ดังนั้นการดาวน์โหลดทั้งหมด (อาจยกเว้นบางสิ่งที่แปลกใหม่สำหรับนักพัฒนา) มีทั้ง JVM และ JRE (ถ้าไม่ใช่ superset JDK)?
Mads Skjern

8
@MadsSkjern ใช่คุณต้องมี JRE เพื่อเรียกใช้แอป Java แต่เมื่อคุณดาวน์โหลดแอป Java มันไม่ได้มาพร้อมกับ JRE มันคาดว่าคุณจะมีแอปพลิเคชั่นติดตั้งอยู่ในคอมพิวเตอร์ของคุณ
alain.janinm

92

JVM เป็น Java Virtual Machine - จริงๆแล้วมันรัน Java ByteCode

JRE เป็น Java Runtime Environment - ซึ่งมี JVM อยู่เหนือสิ่งอื่นใดและเป็นสิ่งที่คุณต้องใช้ในการรันโปรแกรม Java

JDK เป็น Java Development Kit - เป็น JRE แต่ด้วย javac (ซึ่งเป็นสิ่งที่คุณต้องรวบรวมซอร์สโค้ด Java) และเพิ่มเครื่องมือการเขียนโปรแกรมอื่น ๆ

OpenJDK เป็นการใช้งาน JDK ที่เฉพาะเจาะจง


3
อาจเป็นเพราะคุณไม่ได้พูดถึงสิ่งที่other thingsบรรจุอยู่ใน JVM พวกเขาคืออะไร บทความนี้ตอบคำถามอย่างเต็มที่หรือไม่ - javabeat.net/what-is-the-difference-between-jrejvm-and-jdk
Erran Morad

OpenJDK มี JVM ซึ่งเป็นหนึ่งในการนำไปใช้งานของข้อกำหนด JVM Oracle JDK มีการดำเนินการตามข้อกำหนด JVM อีกครั้ง
AKh

46

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 กำหนดวิธีเฉพาะในการทำเช่นนี้


23

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) โดยมีข้อยกเว้นในการเชื่อมโยง


คำตอบที่ดี แต่หนึ่งคำชี้แจง นอกเหนือจาก Oracle ผลิต JDKs - เช่น IBM สำหรับ AIX และ z / OS, HP สำหรับ HP-UX และอื่น ๆ
Trent Grey-Donald

16

JVMเป็นโค้ด Java ของเครื่องเสมือนที่เรียกใช้งาน

JREเป็นสภาวะแวดล้อม (ไลบรารีมาตรฐานและ JVM) ที่จำเป็นสำหรับการรันแอ็พพลิเคชัน Java

JDKเป็น JRE พร้อมเครื่องมือสำหรับนักพัฒนาและเอกสารประกอบ

OpenJDKเป็นรุ่นโอเพ่นซอร์สของ JDK ซึ่งแตกต่างจาก JDK ทั่วไปที่ Oracle เป็นเจ้าของ


15

JDK (ชุดพัฒนา Java):

  • มีเครื่องมือที่จำเป็นสำหรับการพัฒนาโปรแกรม Java
  • คุณต้องการ JDK ถ้าคุณต้องการเขียนโปรแกรมของคุณเองและรวบรวมมัน
  • JDK เป็นเป้าหมายหลักสำหรับการพัฒนาจาวา

JRE (สภาพแวดล้อมรันไทม์ของ Java)

Java Runtime Environment มี JVM ไลบรารีคลาสและไฟล์สนับสนุนอื่น ๆ JRE มีเป้าหมายสำหรับการดำเนินการกับไฟล์ Java

JVM (Java Virtual Machine)

JVM ตีความรหัสไบต์ลงในรหัสเครื่องขึ้นอยู่กับระบบปฏิบัติการและฮาร์ดแวร์รวมกัน รับผิดชอบทุกสิ่งเช่นการรวบรวมขยะการตรวจสอบขอบเขตของอาเรย์และอื่น ๆ ... Java Virtual Machine นำเสนอวิธีการรันโค้ดที่ไม่ขึ้นกับแพลตฟอร์ม


6

JDK - รวบรวม java กับ ByteCode ประกอบด้วย debuggers, Compilers เป็นต้น

javac file.java // Is executed using JDK

JVM - เรียกใช้งานโค้ดไบต์ JVM เป็นสิ่งที่ทำให้แพลตฟอร์ม Java เป็นอิสระ แต่ JVM แตกต่างกันไปสำหรับแพลตฟอร์ม

JRE - JVM พร้อมกับ java runtime library เพื่อรันโปรแกรม java


4

อีกแง่มุมมูลค่าการกล่าวขวัญ:

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 เป็นลูกชายของพวกเขา


9
โพสต์ของคุณผิดทั่วทุกที่ JRE (สภาวะแวดล้อมรันไทม์) มี JVM (เครื่องเสมือน) และ Java Class Library JDK มี JRE และเครื่องมือการเขียนโปรแกรมมากมายสำหรับนักพัฒนา en.wikipedia.org/wiki/JDK en.wikipedia.org/wiki/Java_virtual_machineตอบกลับความคิดเห็นของฉันเมื่อคุณแก้ไขและฉันจะลบ downvote
nhahtdh

@nhahtdh เราสามารถพูดได้: jdk เป็นแพคเกจอิสระสามารถดาวน์โหลดติดตั้งแยกต่างหาก Jre = บางคลาส + ปลั๊กอิน Java + JVM
Prakash Pandey

3

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


3

JVM:ข้อกำหนดซึ่งอธิบายวิธี / ทรัพยากรเพื่อเรียกใช้โปรแกรมจาวา เรียกใช้งานโค้ดไบต์และทำให้แพลตฟอร์ม Java เป็นอิสระ ในการทำเช่นนั้นจะแตกต่างกันไปตามแพลตฟอร์ม JVM สำหรับ windows ไม่สามารถทำงานเป็น JVM สำหรับ UNIX

JRE:การนำ JVM ไปปฏิบัติ (JVM + ไลบรารีรันไทม์)

JDK:คอมไพเลอร์ JRE + java และเครื่องมือสำคัญอื่น ๆ เพื่อสร้างโปรแกรม Java ตั้งแต่เริ่มต้น


2

JVM : นี่หมายถึงการแปลรหัสไบต์เป็นจริงขึ้นอยู่กับแพลตฟอร์ม ตัวอย่างเช่น: ในแพลตฟอร์ม Windows precess ' java.exe ' หรือ ' javaw.exe ' เป็นกระบวนการ jvm

JDK : เป็นชุดเครื่องมือที่มีไลบรารีและยูทิลิตี้ที่จำเป็นสำหรับการพัฒนาและดำเนินการจาวาโปรแกรม / แอปพลิเคชัน

JRE : เป็นสภาวะแวดล้อมการเรียกใช้งานสำหรับจาวาแอ็พพลิเคชันเท่านั้นสนับสนุนการอ้างอิงแบบรันไทม์รวมถึง jvm สำหรับโปรแกรมที่คอมไพล์ หากเราต้องการรวบรวมโปรแกรมจาวาเราจำเป็นต้องมี jdk


2

JVM: เครื่องเสมือนของ java บอกเครื่องว่าจะทำอย่างไรกับรหัส Java คุณไม่สามารถดาวน์โหลด JVM ตามที่เป็นอยู่ มันมาพร้อมกับส่วนประกอบอื่น ๆ

JRE: องค์ประกอบอื่น ๆ ที่อ้างถึงข้างต้นคือ JRE เป็น JVM + ไหอื่น ๆ เพื่อสร้างสภาพแวดล้อมรันไทม์

JDK: ประกอบด้วย JRE (ซึ่งจะมี JVM) เมื่อคุณได้รับ JDK คุณไม่จำเป็นต้องติดตั้ง JRE และ JVM แยกต่างหาก มันมีคอมไพเลอร์ซึ่งรวบรวมไฟล์. java ของคุณเป็นไฟล์. class


2

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


1

สรุป:

  • JRE = JVM + แพ็คเกจ Java (เช่น util, math, lang, awt, swing เป็นต้น) + runtime library
  • เครื่องมือ JDK = JRE + การพัฒนา / การดีบัก

หากคุณต้องการพัฒนาเป็นจาวาคุณต้องมี JDK แต่ถ้าคุณต้องการเรียกใช้จาวาคุณต้องมี JRE


0

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 ไปใช้ฟรีและเปิดกว้าง


0

ในแง่คนธรรมดา: - JDK = JRE + เครื่องมือการพัฒนา / การดีบักที่ JDK เป็นแพคเกจที่สมบูรณ์ของเราที่จะทำงานกับ Java จากการสร้างการรวบรวมจนถึงการเรียกใช้ในมืออื่น ๆ JRE เป็นเพียงการทำงานของรหัส (รหัสไบต์)

หมายเหตุ: - ไม่ว่าเราจะติดตั้ง JDK หรือ JRE JVM จะมาพร้อมกับแพ็คเกจและ JVM เป็นส่วนที่คอมไพเลอร์ JIT แปลงรหัสไบต์เป็นรหัสเฉพาะเครื่อง

เพียงอ่านบทความเกี่ยวกับJDK, JRE, JVM และ JIT


0

JDK : แพคเกจที่สมบูรณ์ซึ่งคุณต้องเขียนและเรียกใช้รหัสจาวา

OpenJDK : การใช้งาน JDK อย่างเป็นอิสระเพื่อทำให้ดีขึ้นมาก

JVM : แปลงโค้ด Java เป็น bytecode และให้ข้อมูลจำเพาะที่บอกว่าโค้ด Java ควรจะรวบรวมโหลดตรวจสอบตรวจสอบข้อผิดพลาดและดำเนินการอย่างไร

JRE : การนำ JVM ไปใช้ซึ่งบางไลบรารี Java ถูกใช้เพื่อรันโปรแกรม


0

JREเรียกใช้งานแอปพลิเคชัน แต่ JVM อ่านบรรทัดคำแนะนำทีละบรรทัดดังนั้นจึงเป็นล่าม

เครื่องมือพัฒนาJDK = JRE +

JRE = JVM + คลาสไลบรารี


0

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 อย่างเป็นทางการของซัน

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