ความแตกต่างระหว่าง Java SE / EE / ME?


326

ฉันควรติดตั้งอันไหนเมื่อฉันต้องการเริ่มเรียนรู้ Java? ฉันจะเริ่มด้วยพื้นฐานบางอย่างดังนั้นฉันจะเขียนโปรแกรมง่ายๆที่สร้างไฟล์ไดเรกทอรีแก้ไขไฟล์ XML และอื่น ๆ ตอนนี้ไม่มีอะไรซับซ้อนเกินไป

ฉันเดาว่า Java SE (Standard Edition) เป็นสิ่งที่ฉันควรติดตั้งบนเดสก์ท็อป Windows 7 ของฉัน ฉันมี Komodo IDE อยู่แล้วซึ่งฉันจะใช้เพื่อเขียนโค้ด Java


6
คุณควรเริ่มต้นด้วยการเรียนรู้ Java SE Java EE ค่อนข้างสับสนในตอนแรก เมื่อคุณพร้อมให้ดูที่หน้าภาพรวม Java EE 7 ที่ยอดเยี่ยมนี้เพื่อเริ่มต้น โดยเฉพาะการสอนJava EE 7 Oracleเป็นจุดเริ่มต้นที่ดี
dexter meyers

คำตอบ:


545

Java SE = Standard EditionEdition นี่คือแพลตฟอร์มการเขียนโปรแกรม Java หลัก มันมีไลบรารีและ API ทั้งหมดที่โปรแกรมเมอร์ Java ควรเรียนรู้ (java.lang, java.io, java.math, java.net, java.util, ฯลฯ ... )

Java EE = Enterprise Edition จาก Wikipedia:

แพลตฟอร์ม Java (Enterprise Edition) แตกต่างจากแพลตฟอร์ม Java Standard Edition (Java SE) ซึ่งจะเพิ่มไลบรารีที่จัดเตรียมการทำงานเพื่อปรับใช้ซอฟต์แวร์ Java แบบหลายชั้นที่ป้องกันข้อผิดพลาดกระจายและผิดพลาดโดยยึดตามส่วนประกอบโมดูลที่ทำงานบนแอพพลิเคชันเซิร์ฟเวอร์ .

หากแอปพลิเคชันของคุณต้องการระบบกระจายขนาดใหญ่มากคุณควรพิจารณาใช้ Java EE สร้างขึ้นที่ด้านบนของ Java SE มันให้ห้องสมุดสำหรับการเข้าถึงฐานข้อมูล (JDBC, JPA), การเรียกใช้วิธีการระยะไกล (RMI), การส่งข้อความ ( JMS) ), บริการเว็บ, การประมวลผล XML และกำหนด API มาตรฐานสำหรับ Enterprise JavaBeans, servlets, พอร์ตเล็ต, Java หน้าเซิร์ฟเวอร์ ฯลฯ ...

Java ME = Micro Edition นี่เป็นแพลตฟอร์มสำหรับการพัฒนาแอพพลิเคชั่นสำหรับอุปกรณ์มือถือและระบบฝังตัวเช่นกล่องรับสัญญาณ Java ME จัดเตรียมชุดย่อยของฟังก์ชันการทำงานของ Java SE แต่ยังแนะนำไลบรารีเฉพาะสำหรับอุปกรณ์มือถือ เนื่องจาก Java ME ขึ้นอยู่กับ Java SE เวอร์ชันก่อนหน้าคุณลักษณะด้านภาษาใหม่บางอย่างที่นำเสนอใน Java 1.5 (เช่น generics) จึงไม่สามารถใช้งานได้

หากคุณยังใหม่กับ Java ให้เริ่มต้นด้วย Java SE แน่นอน


157
ฉันไม่เห็นด้วยกับการแนะนำ IDE ให้กับคนที่ไม่เคยใช้รหัส Java มาก่อน เขียนบางอย่างโดยใช้บรรทัดคำสั่งก่อนเพื่อให้คุณมีโอกาสในการต่อสู้ที่เข้าใจว่า CLASSPATH หมายถึงอะไร หากคุณใช้ Eclipse ก่อนที่คุณจะเข้าใจ Java นั่นเป็นสองสิ่งใหญ่ที่คุณไม่รู้
duffymo

47
@duffymo IMO เป็นความคิดที่ดีที่จะมีการแนะนำ IDE เพราะการเขียนโปรแกรมด้วย text text editor ไม่ได้ให้ประโยชน์ใด ๆ ในการเรียนรู้ภาษาใหม่การมีระบบ Intellisense และการเติมข้อความอัตโนมัติเป็นเครื่องมือที่มีค่าสำหรับโปรแกรมเมอร์ คุ้นเคยกับสภาพแวดล้อมใหม่
Felice Pollano

4
@duffymo ฉันยังคงอ่านสิ่งนี้หลังจาก 5 ปีที่ Google นำฉันมาที่นี่ดังนั้นฉันเดาว่ายังคงมีจุดเริ่มต้นการสนทนา ในกรณีเฉพาะนี้ฉันเห็นด้วยกับข้อโต้แย้งของคุณเกี่ยวกับ IDE
qutab

8
ฉันเห็นว่าไม่มีอะไรผิดปกติในการพูดถึงปัญหาที่ยากและเป็นอมตะ
LegendLength

2
เฉพาะรุ่น JDK เท่านั้นหรือไม่ หรือ JRE และ JVM ต่างกันสำหรับ SE & EE?
Arun SR

68

นี่คือความแตกต่างบางประการในแง่ของ API

Java SE include มี API ต่อไปนี้และอีกมากมาย

  • แอปเพล็
  • AWT
  • RMI
  • JDBC
  • แกว่ง
  • คอลเลกชัน
  • xml binding
  • JavaFX (ผสานกับ Java SE 8)
  • Java 8 คอลเลกชันสตรีมมิ่ง API
  • Java 9 Reactive Streams API
  • Java 9 HTTP / 2 API

Java EE มี API ต่อไปนี้และอีกมากมาย

  • เซิร์ฟเล็ต
  • WebSocket
  • ใบหน้าจาวา
  • ฉีดพึ่งพา
  • EJB
  • วิริยะ
  • การซื้อขาย
  • JMS
  • API ชุด

Java ME รวมถึง API ต่อไปนี้และอื่น ๆ อีกมากมาย

  • การส่งข้อความไร้สาย
  • บริการ Java ME Web
  • API บริการด้านความปลอดภัยและความน่าเชื่อถือ
  • ที่ตั้ง
  • API มือถือ XML

หวังว่านี่จะช่วยได้


1
ดังที่แสดงไว้หมายความว่าไม่มีสิ่งใดใน SE ที่รวมอยู่ใน EE และมีอะไรในตัวฉันไม่ได้อยู่ใน EE? ดูเหมือนว่าหากคุณต้องการ Wireless Messaging ตัวอย่างเช่นคุณต้องการ ME และไม่มีใน EE ถูกต้องหรือไม่
ejbytes

ในฐานะของ Java EE เวอร์ชัน 6 Collections API เป็นส่วนหนึ่งของ Java EE ด้วยหรือไม่
Sriyank Siddhartha

52

Java SE เป็นรากฐานที่ Java EE ถูกสร้างขึ้น

Java ME เป็นชุดย่อยของ SE สำหรับอุปกรณ์มือถือ

ดังนั้นคุณควรติดตั้ง Java SE สำหรับโครงการของคุณ


36

ตามเอกสารของ Oracle มีจริงสี่แพลตฟอร์ม Java:

  • แพลตฟอร์ม Java รุ่นมาตรฐาน (Java SE)
  • แพลตฟอร์ม Java รุ่นองค์กร (Java EE)
  • แพลตฟอร์ม Java, Micro Edition (Java ME)
  • JavaFX

Java SEสำหรับการพัฒนาแอปพลิเคชันเดสก์ท็อปและเป็นพื้นฐานสำหรับการพัฒนาในภาษาจาวา ประกอบด้วยเครื่องมือในการพัฒนาเทคโนโลยีการปรับใช้และไลบรารี่และชุดเครื่องมืออื่น ๆ ที่ใช้ในแอปพลิเคชัน Java Java EEสร้างขึ้นจาก Java SE และใช้สำหรับการพัฒนาเว็บแอปพลิเคชันและแอปพลิเคชันระดับองค์กรขนาดใหญ่ Java MEเป็นส่วนย่อยของ Java SE ให้บริการ API และเครื่องเสมือนขนาดเล็กสำหรับใช้งานแอปพลิเคชัน Java บนอุปกรณ์ขนาดเล็ก JavaFXเป็นแพลตฟอร์มสำหรับการสร้างแอปพลิเคชันอินเทอร์เน็ตที่สมบูรณ์โดยใช้ API ส่วนติดต่อผู้ใช้ที่มีน้ำหนักเบา เป็นส่วนเสริมล่าสุดของตระกูล Java platform

พูดอย่างเคร่งครัดแพลตฟอร์มเหล่านี้มีข้อกำหนด; เป็นบรรทัดฐานไม่ใช่ซอฟต์แวร์ แพลตฟอร์ม Java, Standard Edition Development Kit (JDK) เป็นการนำมาใช้อย่างเป็นทางการ ของข้อกำหนด Java SE ที่จัดทำโดย Oracle นอกจากนี้ยังมีการใช้งานอื่น ๆ เช่น OpenJDK และ J9 ของ IBM

ผู้ที่เพิ่งเริ่มใช้ Java ดาวน์โหลด JDK สำหรับแพลตฟอร์มและระบบปฏิบัติการ (JDK ของ Oracle สามารถดาวน์โหลดได้ ที่นี่ )


1
เป็นจริงสำหรับเอกสาร Java 6 Java 7 กล่าวว่ามี 3 แพลตฟอร์มและ JavaFX เป็นส่วนหนึ่งของ Java SE
Javatar

Java SE สำหรับการพัฒนาแอปพลิเคชันเดสก์ท็อป Java EE ใช้สำหรับการพัฒนาเว็บแอปพลิเคชันและแอปพลิเคชันระดับองค์กร
AyukNayr

20

เมื่อฉันเจอคำถามนี้ฉันพบว่าข้อมูลที่ให้ไว้ในบทช่วยสอนของ Oracleนั้นสมบูรณ์มากและคุ้มค่าที่จะแบ่งปัน:

แพลตฟอร์มภาษาโปรแกรม Java

มีสี่แพลตฟอร์มของภาษาการเขียนโปรแกรม Java:

  • แพลตฟอร์ม Java รุ่นมาตรฐาน (Java SE)

  • แพลตฟอร์ม Java รุ่นองค์กร (Java EE)

  • แพลตฟอร์ม Java, Micro Edition (Java ME)

  • JavaFX

แพลตฟอร์ม Java ทั้งหมดประกอบด้วย Java Virtual Machine (VM) และ application programming interface (API) Java Virtual Machine เป็นโปรแกรมสำหรับแพลตฟอร์มฮาร์ดแวร์และซอฟต์แวร์เฉพาะที่รันแอปพลิเคชันเทคโนโลยี Java API คือชุดของส่วนประกอบซอฟต์แวร์ที่คุณสามารถใช้เพื่อสร้างส่วนประกอบซอฟต์แวร์หรือแอปพลิเคชันอื่น ๆ แต่ละแพลตฟอร์ม Java ให้เครื่องเสมือนและ API และสิ่งนี้ช่วยให้แอปพลิเคชันที่เขียนขึ้นสำหรับแพลตฟอร์มนั้นทำงานบนระบบที่เข้ากันได้กับข้อดีของภาษาโปรแกรม Java: แพลตฟอร์มอิสระพลังงานเสถียรภาพความสะดวกในการพัฒนาและ ความปลอดภัย

Java SE

เมื่อคนส่วนใหญ่นึกถึงภาษาการเขียนโปรแกรม Java พวกเขาคิดว่า Java SE API API ของ Java SE ให้ฟังก์ชันการทำงานหลักของภาษาการเขียนโปรแกรม Java มันกำหนดทุกอย่างจากประเภทพื้นฐานและวัตถุของภาษาการเขียนโปรแกรมจาวาไปจนถึงระดับสูงที่ใช้สำหรับเครือข่ายความปลอดภัยการเข้าถึงฐานข้อมูลการพัฒนาส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) และการแยกวิเคราะห์ XML

นอกเหนือจาก API หลักแพลตฟอร์ม Java SE ประกอบด้วยเครื่องเสมือนเครื่องมือพัฒนาเทคโนโลยีการปรับใช้และไลบรารีคลาสและชุดเครื่องมืออื่น ๆ ที่ใช้กันทั่วไปในแอปพลิเคชันเทคโนโลยี Java

Java EE

แพลตฟอร์ม Java EE สร้างขึ้นจากด้านบนของแพลตฟอร์ม Java SE แพลตฟอร์ม Java EE จัดเตรียม API และสภาวะแวดล้อมรันไทม์สำหรับการพัฒนาและรันแอ็พพลิเคชันเครือข่ายขนาดใหญ่หลายชั้นปรับขนาดได้เชื่อถือได้และปลอดภัย

Java ME

แพลตฟอร์ม Java ME เป็น API และเครื่องเสมือนขนาดเล็กสำหรับใช้งานแอปพลิเคชั่นภาษาการเขียนโปรแกรม Java บนอุปกรณ์ขนาดเล็กเช่นโทรศัพท์มือถือ API เป็นส่วนย่อยของ Java SE API พร้อมกับไลบรารีคลาสพิเศษที่มีประโยชน์สำหรับการพัฒนาแอปพลิเคชันอุปกรณ์ขนาดเล็ก แอปพลิเคชัน Java ME มักเป็นไคลเอนต์ของบริการแพลตฟอร์ม Java EE

JavaFX

JavaFX เป็นแพลตฟอร์มสำหรับการสร้างแอปพลิเคชันอินเทอร์เน็ตที่สมบูรณ์โดยใช้ API ส่วนติดต่อผู้ใช้ที่มีน้ำหนักเบา แอปพลิเคชัน JavaFX ใช้กราฟิกและเครื่องมือเร่งสื่อเพื่อใช้ประโยชน์จากลูกค้าที่มีประสิทธิภาพสูงกว่าและรูปลักษณ์ที่ทันสมัยและ API ระดับสูงสำหรับการเชื่อมต่อกับแหล่งข้อมูลเครือข่าย แอปพลิเคชัน JavaFX อาจเป็นลูกค้าของบริการแพลตฟอร์ม Java EE


1
คัดลอกมาจากเว็บไซต์ oracle :)
Irfan Nasim

1
@IrfanNasim ฉันรู้ว่ามันถูกคัดลอกมาจาก Oracle และฉันพูดถึงว่า !! คุณอ่านคำตอบจากด้านบนรึยัง! และคุณรู้ไหมว่าใน SO เมื่อคุณให้ลิงค์คุณต้องคัดลอกข้อมูลที่สำคัญเพราะเมื่อลิงค์ไม่ทันสมัยหรือไม่ทำงานผู้คนยังสามารถอ่านสิ่งที่อยู่ในลิงค์ !! มันแปลกที่คุณมีตัวแทน 198 คนและคุณก็ยังไม่รู้กฎ !!
Tarik

13

ฉันเดาว่า Java SE (Standard Edition) เป็นสิ่งที่ฉันควรติดตั้งบนเดสก์ท็อป Windows 7 ของฉัน

ใช่แน่นอน Java SE เป็นหนึ่งที่ดีที่สุดที่จะเริ่มต้นด้วย BTW คุณต้องเรียนรู้พื้นฐานของ Java นั่นหมายความว่าคุณต้องเรียนรู้บางส่วนของไลบรารีและ API ใน Java SE

ความแตกต่างระหว่าง Java Platform Editions:

Java Micro Edition (Java ME):

  • สภาพแวดล้อมรันไทม์ที่ได้รับการปรับปรุงให้ดีที่สุด
  • กำหนดเป้าหมายผลิตภัณฑ์เพื่อผู้บริโภค ( เพจเจอร์โทรศัพท์มือถือ)
  • Java ME เดิมชื่อ Java 2 Platform, Micro Edition หรือ J2ME

Java Standard Edition (Java SE):

เครื่องมือ Java, runtimes และ API สำหรับนักพัฒนาที่เขียนปรับใช้และใช้งานแอปเล็ตและแอปพลิเคชัน Java SE เดิมชื่อ Java 2 Platform, Standard Edition หรือ J2SE (ทุกคน / ผู้เริ่มต้นเริ่มต้นจากสิ่งนี้)

Java Enterprise Edition (Java EE):

กำหนดเป้าหมายแอปพลิเคชันฝั่งเซิร์ฟเวอร์ระดับองค์กร Java EE เดิมชื่อ Java 2 Platform, Enterprise Edition หรือ J2EE

อีกคำถามที่ซ้ำกันสำหรับคำถามนี้


สุดท้ายเกี่ยวกับJ .. ความสับสน

JVM (Java Virtual Machine):

JVM เป็นส่วนหนึ่งของทั้ง JDK และ JRE ที่แปลโค้ด Java byte และดำเนินการเป็นโค้ดเนทีฟบนเครื่องไคลเอ็นต์

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

เป็นสภาพแวดล้อมที่จัดเตรียมไว้สำหรับโปรแกรม Java เพื่อเรียกใช้งาน มันมี JVM, ไลบรารีคลาสและไฟล์สนับสนุนอื่น ๆ มันไม่ได้มีเครื่องมือในการพัฒนาใด ๆ เช่นคอมไพเลอร์ดีบักและอื่น ๆ

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

JDK มีเครื่องมือที่จำเป็นในการพัฒนาโปรแกรมจาวา (javac, java, javadoc, appletviewer, jdb, javap, rmic, ... ) และ JRE เพื่อรันโปรแกรม

Java SDK (ชุดพัฒนาซอฟต์แวร์ Java):

SDK ประกอบด้วย JDK และซอฟต์แวร์เพิ่มเติมเช่นแอพพลิเคชันเซิร์ฟเวอร์ตัวดีบั๊กและเอกสารประกอบ

Java SE:

แพลตฟอร์ม Java Standard Edition (Java SE) ให้คุณพัฒนาและปรับใช้แอปพลิเคชัน Java บนเดสก์ท็อปและเซิร์ฟเวอร์ (เช่นเดียวกับ SDK)

J2SE, J2ME, J2EE

Java รุ่นใดก็ได้ตั้งแต่ 1.2 ถึง 1.5

อ่านเพิ่มเติมเกี่ยวกับหัวข้อเหล่านี้:


11

ใช่ Java SE เป็นจุดเริ่มต้น งานทั้งหมดที่คุณกล่าวถึงสามารถจัดการได้

Java ME เป็น Mobile Edition และ EE เป็น Enterprise Edition; เหล่านี้เป็นรุ่นมาตรฐาน / ขยายของ Standard Edition


7

ใช่คุณควรเริ่มต้นด้วย Java SE Java EE ใช้สำหรับเว็บแอปพลิเคชันและ Java ME สำหรับมือถือแอปพลิเคชัน - ทั้งสองนี้สร้างจาก SE


6

Java SE (Standard Edition) สำหรับสร้างแอปบนเดสก์ท็อป

Java ME (Micro Edition) สำหรับอุปกรณ์มือถือรุ่นเก่า

Java EE (Enterprise Edition) สำหรับการพัฒนาแอพพลิเคชั่นบนเว็บ


2

ถ้าฉันเป็นคุณฉันจะติดตั้ง Java SE SDK เมื่อติดตั้งแล้วตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME และเพิ่ม% JAVA_HOME% \ bin dir ให้กับเส้นทางของคุณ


1

นักพัฒนาใช้รุ่นต่าง ๆ ของแพลตฟอร์ม Java เพื่อสร้างโปรแกรม Java ที่ทำงานบนคอมพิวเตอร์เดสก์ท็อปเว็บเบราว์เซอร์เว็บเซิร์ฟเวอร์อุปกรณ์ข้อมูลมือถือ (เช่นโทรศัพท์คุณสมบัติ) และอุปกรณ์ฝังตัว (เช่นกล่องรับสัญญาณโทรทัศน์)

Java Platform, Standard Edition (Java SE):แพลตฟอร์ม Java สำหรับการพัฒนาแอปพลิเคชันซึ่งเป็นโปรแกรมแบบสแตนด์อโลนที่รันบนเดสก์ท็อป Java SE ยังใช้เพื่อพัฒนาแอปเพล็ตซึ่งเป็นโปรแกรมที่ทำงานในเว็บเบราว์เซอร์

Java Platform, Enterprise Edition (Java EE):แพลตฟอร์ม Java สำหรับการพัฒนาแอพพลิเคชั่นและ servlets สำหรับองค์กรซึ่งเป็นโปรแกรมเซิร์ฟเวอร์ที่สอดคล้องกับ Servlet API ของ Java EE Java EE สร้างขึ้นจาก Java SE

แพลตฟอร์ม Java, Micro Edition (Java ME): แพลตฟอร์ม Java สำหรับการพัฒนา MIDlets ซึ่งเป็นโปรแกรมที่ทำงานบนอุปกรณ์ข้อมูลมือถือและ Xlets ซึ่งเป็นโปรแกรมที่ทำงานบนอุปกรณ์ฝังตัว


0

SE (JDK) มีห้องสมุดทั้งหมดที่คุณจะต้องฟันของคุณบน Java ฉันขอแนะนำ Netbeans IDE เพราะมาพร้อมกับ SE (JDK) โดยตรงจาก Oracle อย่าลืมตั้งค่าตัวแปร "พา ธ " และ "คลาสพา ธ " โดยเฉพาะถ้าคุณกำลังลองบรรทัดคำสั่ง ด้วยระบบ 64 บิตให้แทรก "เส้นทางของระบบ" เช่นตัวแปร C: \ Program Files (x86) \ Java \ jdk1.7.0 ก่อนหน้า C: \ Windows \ system32; เพื่อนำระบบไปยัง JDK ของคุณ

หวังว่านี่จะช่วยได้


0

Java SE ใช้สำหรับแอปพลิเคชันเดสก์ท็อปและฟังก์ชันหลักอย่างง่าย Java EE ใช้สำหรับเดสก์ท็อป แต่ยังรวมถึงการพัฒนาเว็บเครือข่ายและสิ่งต่าง ๆ ขั้นสูง


0

EE: - Enterprise Edition: - รุ่น Java นี้ถูกออกแบบมาโดยเฉพาะสำหรับการใช้งาน / ธุรกิจขององค์กรที่เราต้องจัดการกับจำนวนของเซิร์ฟเวอร์ที่แตกต่างกันที่มีความสำคัญเกี่ยวกับความปลอดภัยการจัดการธุรกรรม ฯลฯ

SE: - Standard Edition: - รุ่นนี้มีไว้สำหรับแอปพลิเคชันมาตรฐาน

ME: - Micro Edition: - รุ่น java นี้ถูกออกแบบมาโดยเฉพาะสำหรับแพลตฟอร์มโทรศัพท์มือถือ ที่ให้ความสำคัญกับการจัดการหน่วยความจำมากขึ้นเนื่องจากมีทรัพยากรหน่วยความจำ จำกัด ในโทรศัพท์มือถือ

ดังนั้นโดยทั่วไป JAVA มีรุ่นที่แตกต่างกันสำหรับความต้องการที่แตกต่างกัน

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