ความแตกต่างระหว่าง JDK และ Java SDK


85

มีความแตกต่างกันมากระหว่างสองคำนี้หรือไม่? ฉันเข้าใจว่า JDK ย่อมาจาก Java Development Kit ซึ่งเป็นส่วนย่อยของ SDK (Software Development Kit) แต่การระบุ Java SDK ควรมีความหมายเหมือนกับ JDK

คำตอบ:


97

จากรายการวิกิพีเดียนี้:

JDK เป็นส่วนย่อยของสิ่งที่กำหนดไว้อย่างหลวม ๆ ว่าเป็นชุดพัฒนาซอฟต์แวร์ (SDK) ในความหมายทั่วไป ในคำอธิบายที่มาพร้อมกับรุ่นล่าสุดสำหรับ Java SE, EE และ ME Sun รับทราบว่าภายใต้คำศัพท์ของพวกเขา JDK เป็นชุดย่อยของ SDK ซึ่งรับผิดชอบในการเขียนและเรียกใช้โปรแกรม Java ส่วนที่เหลือของ SDK ประกอบด้วยซอฟต์แวร์เพิ่มเติมเช่น Application Servers, Debuggers และ Documentation

"ซอฟต์แวร์พิเศษ" น่าจะเป็น Glassfish, MySQL และ NetBeans หน้านี้จะแสดงการเปรียบเทียบแพ็คเกจต่างๆที่คุณจะได้รับสำหรับ Java EE SDK


SDK มี (!) ในแพ็กเกจ - JDK "แพ็กเกจ" หรือไม่
Royi Namir

JRE มีอยู่ใน JDK ใช่ JDK เป็นชุดพัฒนาซอฟต์แวร์ (SDK)
jamesh

34

ใช่มีความแตกต่างระหว่าง SDK และ JDK คนส่วนใหญ่ลืมไปว่า Java Platform ไม่ได้ใช้เพื่อพัฒนาโปรแกรมในภาษา Java เท่านั้น JVM รองรับภาษาอื่น ๆ ด้วย ดังนั้นเพื่อให้ชัดเจน SDK จึงเป็นชุดซอฟต์แวร์ทั่วไปที่รองรับการสร้างซอฟต์แวร์ในภาษาต่างๆเช่น Clojure, Groovy, Scala, JRuby และอื่น ๆ JDK เป็นบันเดิลเฉพาะสำหรับพัฒนาซอฟต์แวร์ในภาษา Java ซึ่งมี Java มาตรฐาน API ทั้งหมดที่จะทำเช่นนั้น (ฉันหวังว่าฉันจะอธิบายได้ดีเนื่องจากฉันไม่ได้พูดภาษาอังกฤษ)


27

JDK คือ SDK สำหรับ Java

SDK ย่อมาจาก 'Software Development Kit' ซึ่งเป็นเครื่องมือสำหรับนักพัฒนาที่ช่วยให้สามารถเขียนโค้ดได้อย่างง่ายดายมีประสิทธิผลและประสิทธิภาพมากขึ้น SDK มาสำหรับภาษาต่างๆ พวกเขามี API จำนวนมาก (Application Programming Interfaces) ที่ทำให้การทำงานของโปรแกรมเมอร์ง่าย

ใส่คำอธิบายภาพที่นี่

SDK สำหรับ Java เรียกว่า JDK ซึ่งเป็น Java Development Kit ดังนั้นการพูด SDK สำหรับ Java คุณกำลังอ้างถึง JDK

สมมติว่าคุณยังใหม่กับ Java มีคำอื่นที่คุณจะเจอ - JRE ซึ่งเป็นตัวย่อของ Java Runtime Environment JRE เป็นสิ่งที่คุณต้องการเมื่อคุณพยายามเรียกใช้โปรแกรมซอฟต์แวร์ที่เขียนด้วย Java

Java เป็นภาษาที่ไม่ขึ้นกับแพลตฟอร์ม JRE รัน JVM ซึ่งเป็น Java Virtual Machine ซึ่งช่วยให้คุณสามารถรันซอฟต์แวร์บนแพลตฟอร์มใดก็ได้ที่ JVM พร้อมใช้งาน


1
โปรดชี้แจงว่า JRE เหมาะกับไดอะแกรมของคุณตรงไหน?
vikramvi

JRE เข้ามาได้ดีใน JDK หรืออาจเป็นแบบสแตนด์อโลนขึ้นอยู่กับสิ่งที่คุณกำลังทำ มันเป็นรันไทม์ดังนั้นเมื่อคุณสร้างแอปพลิเคชันมันจะอยู่ใน JDK แต่เมื่อคุณเพิ่งเรียกใช้แอปพลิเคชันมันจะเป็นแบบสแตนด์อโลนซึ่งในกรณีนี้แผนภาพนี้ไม่สมเหตุสมผล
raj240

แน่ใจหรือว่า jdk เป็น sdk ของ java? เมื่อพิจารณาจาก java se อาจเป็นจริง แต่สำหรับ java ee และ java ฉันฉันเคยเห็นเฉพาะ SDK ที่ Oracle ให้มา แล้วคุณแน่ใจจริงๆเหรอ?
user12208242

รูปภาพกำลังคุยกับฉัน :)
โมฮัมหมัด

5

นำมาจากโปรแกรมติดตั้ง Java EE 6 SDK แสดงว่า SDK 6 ประกอบด้วยอะไรบ้างนอกเหนือจาก JDK:

SDK 6 ประกอบด้วยอะไรบ้างนอกจาก JDK


3

ซันชอบเปลี่ยนชื่อของสิ่งต่างๆโดยไม่มีเหตุผลชัดเจน ดูรูปแบบการกำหนดหมายเลขที่แตกต่างกันสามแบบสำหรับ SunOS / Solaris หรือรูปแบบการกำหนดหมายเลขสองแบบสำหรับ Java Java 1.6, Java 2 Version 6 หรือ Java 6 คืออะไร


3

JDK (Java Development Kit) คือ SDK (Software Dev Kit)

มันถูกใช้เพื่อสร้างซอฟต์แวร์ / แอพพลิเคชั่นบน Java และแน่นอนว่ามันรวมถึง JRE (Java Runtime Edition) เพื่อรันซอฟต์แวร์นั้น หากคุณต้องการเรียกใช้แอปพลิเคชัน Java ให้ดาวน์โหลดเฉพาะ JRE

อย่างไรก็ตาม Java EE (Enterprise Edition) มีไลบรารีของแพ็กเกจคลาส "พร้อมเมธอด (ฟังก์ชัน)" เพื่อสร้างแอปสำหรับสภาพแวดล้อม WEB และ Java ME (Micro Edition) สำหรับอุปกรณ์พกพา หากคุณสนใจ (Java ME) ฉันขอแนะนำให้ดูที่ Android DevKit และ API ของ Google

ดูที่นี่: จะอธิบายเพิ่มเติมอีกเล็กน้อย .. http://www.oracle.com/technetwork/java/archive-139210.html


2

ตั้ง JDK มาพร้อมกับคอลเลกชันของเครื่องมือที่จะใช้สำหรับการพัฒนาและการใช้โปรแกรมจาวา ,

ได้แก่ :

  1. appletviewer (สำหรับดู Java applet)

  2. javac (คอมไพเลอร์ Java)

  3. java (ตัวแปล Java)

  4. javap (ตัวแยกชิ้นส่วน Java)

  5. javah (สำหรับไฟล์ส่วนหัว C)

  6. javadoc (สำหรับสร้างเอกสาร HTML)

  7. jdb (ดีบักเกอร์ Java)

ในขณะที่ SDK มาพร้อมกับเครื่องมืออื่น ๆ อีกมากมายรวมถึงเครื่องมือที่มีอยู่ใน JDK ด้วย

http://parvindersingh.webs.com/apps/forums/topics/show/8853125-solved-java-difference-between-jdk-and-sdk-


1

ไม่มีความแตกต่างระหว่าง JDK และ Java SDK ทั้งสองหมายถึงสิ่งเดียวกัน ฉันคิดว่าเป็นการตัดสินใจของฝ่ายประชาสัมพันธ์ที่ Sun ในการเปลี่ยนจาก JDK เป็น Java SDK ฉันคิดว่าตอนนี้กลับไปที่ JDK แล้ว


1

ในมุมมองของฉันไม่มีความแตกต่างระหว่าง JDK และ SDK ใน java เราสามารถค้นหาเครื่องมือการพัฒนาทั้งหมดรวมทั้งสิ่งอำนวยความสะดวกได้ในทั้งสองอย่าง มันเป็นเพียงนามแฝงที่จัดทำโดย sun


1

ตัวอย่างที่ดีที่สุดสำหรับคำถามนี้ SDK - Software Development Kit - เช่น Netbeans JDK - Java Development Kit (นี่คือคอมไพเลอร์ Java) หากไม่มี JDK เราไม่สามารถเรียกใช้โปรแกรมจาวาใน SDK ได้


1

ไม่มีความแตกต่างกัน

Java Software Development Kit (Java SDK) เคยเรียกว่า Java Development Kit (JDK) ก่อนที่ฝ่ายการตลาดของ Sun จะคลั่งไคล้กับ "tm" และศัพท์เฉพาะ ด้วยเหตุผลทางการเมืองและเพื่อความมีเหตุผลพวกเขาเรียกชื่อที่มีความหมาย (jdk) และเวอร์ชัน (1.2 / 1.3 / 1.4 1.5 / 1.6) "วิศวกรรม" เงื่อนไขทางการตลาดคือ "แพลตฟอร์ม Java2" (aka jdk 1.2 ถึง 1.4) หรือ Java5 (aka jdk 1.5) หรือ Java6 (aka jdk1.6) ฉันปวดหัวแค่คิดถึงเรื่องนี้


0

ฉันคิดว่า jdk มีคุณสมบัติบางอย่างที่สามารถใช้ร่วมกับเฟรมเวิร์กเฉพาะได้ เรียกว่า SDK โดยรวม

เช่นเดียวกับ Android หรือ Blackberry ทั้งคู่ใช้ java ร่วมกับกรอบงาน


-1

การเดาเริ่มต้นของฉันคือ Java SDK มีไว้สำหรับสร้าง JVM ในขณะที่ JDK ใช้สำหรับสร้างแอปสำหรับ JVM

แก้ไข: แม้ว่าสิ่งนี้ดูเหมือนจะไม่ถูกต้องในขณะนี้ Sun กำลังอยู่ในขั้นตอนของการเปิด JVM (บางทีอาจจะเสร็จสิ้นแล้ว) ดังนั้นฉันจะไม่แปลกใจเลยถ้าคำตอบของฉันถูกต้อง ... แต่ในขณะนี้ SDK และ JDK เป็นสิ่งเดียวกัน


ขออภัยคุณหมายถึงอะไรในการสร้าง JVM
Juan Carlos Blanco Martínez

แอปพลิเคชัน Java ทำงานภายใน Java Virtual Machine เป็นส่วนหนึ่งของ JRE ที่เปิดสู่สาธารณะดังนั้น Java SDK จึงมีประโยชน์สำหรับผู้ที่สร้าง JRE สำหรับแพลตฟอร์มของตน
Oli

ขออภัยคุณได้รับคำสั่งนี้มาจากไหน (Java SDK จะมีประโยชน์สำหรับผู้ที่สร้าง JRE สำหรับแพลตฟอร์มของตน) จากที่ไหน ฉันคิดว่าฉันไม่เข้าใจคุณหรือนั่นไม่ใช่เป้าหมายของ Java SDK Java SDK ถูกสร้างขึ้นโดย JRE และเครื่องมือบางอย่างเช่น Javac, javap, javadoc ...
Juan Carlos Blanco Martínez

-1

มีสองผลิตภัณฑ์ JavaSE และ JavaEE EE เป็นเว็บแอปพลิเคชัน / รุ่นสำหรับองค์กรที่อนุญาตให้พัฒนาและใช้งานเว็บแอปพลิเคชัน SE เป็นผลิตภัณฑ์ Java ธรรมดาที่ไม่มีข้อมูลเฉพาะของ EE แต่เป็นส่วนย่อยของ EE SE มีสองประเภทคือ JDK และ JRE

มีความแตกต่างใหญ่อย่างหนึ่งที่อาจไม่ชัดเจนและฉันไม่แน่ใจว่ามันใช้กับระบบปฏิบัติการทั้งหมดหรือไม่ แต่ใน Windows JRE ไม่มีเซิร์ฟเวอร์ HotSpot JVM มีเพียงไคลเอนต์เดียว JDK มีทั้งสองอย่างและเท่าที่ ฉันรู้ว่าระบบปฏิบัติการอื่น ๆ มีทั้งสำหรับ JDK และ JRE ความแตกต่างที่แท้จริงคือ JDK มีคอมไพเลอร์ Java นั่นคือ JDK อนุญาตให้คุณคอมไพล์และรัน Java จากซอร์สโค้ดโดยที่ JRE อนุญาตให้รันโค้ด Java byte เท่านั้นนั่นคือซอร์สที่คอมไพล์แล้ว และใช่เวอร์ชันที่ใหม่กว่าจะรวมส่วนประกอบเพิ่มเติมจำนวนหนึ่งเช่นสภาพแวดล้อมตัวแก้ไข NetBeans และ Java ในฐานข้อมูลหน่วยความจำ (ดาร์บี้ / คลาวด์สเคป) แต่สิ่งเหล่านี้เป็นทางเลือก

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