Perbedaan antara Java SE / EE / ME?

326

Yang mana yang harus saya instal ketika saya ingin mulai belajar Java? Saya akan mulai dengan beberapa dasar, jadi saya akan menulis program sederhana yang membuat file, direktori, mengedit file XML dan sebagainya, tidak ada yang terlalu rumit untuk saat ini.

Saya kira Java SE (Edisi Standar) adalah yang harus saya instal di desktop Windows 7 saya. Saya sudah memiliki IDE Komodo yang akan saya gunakan untuk menulis kode Java.

Richard Knop
sumber
6
Anda harus mulai dengan mempelajari Java SE. Java EE bisa agak membingungkan pada awalnya. Ketika Anda siap untuk itu, lihat halaman tinjauan Java EE 7 yang luar biasa ini untuk memulai. Terutama tutorial Java EE 7 Oracle adalah tempat yang baik untuk memulai.
dexter meyers

Jawaban:

545

Java SE = Edisi Standar . Ini adalah platform pemrograman Java inti. Ini berisi semua perpustakaan dan API yang harus dipelajari oleh setiap programmer Java (java.lang, java.io, java.math, java.net, java.util, dll ...).

Java EE = Edisi Perusahaan . Dari Wikipedia:

Platform Java (Enterprise Edition) berbeda dari Java Standard Edition Platform (Java SE) karena menambahkan pustaka yang menyediakan fungsionalitas untuk menyebarkan perangkat lunak Java yang toleran, terdistribusi, multi-tier, sebagian besar didasarkan pada komponen modular yang berjalan pada server aplikasi .

Dengan kata lain, jika aplikasi Anda menuntut skala besar, sistem terdistribusi, maka Anda harus mempertimbangkan menggunakan Java EE. Dibangun di atas Java SE, ia menyediakan pustaka untuk akses basis data (JDBC, JPA), pemanggilan metode jarak jauh (RMI), perpesanan ( JMS ), layanan web, pemrosesan XML, dan mendefinisikan API standar untuk JavaBeans Enterprise, servlets, portlets, Java Halaman Server, dll ...

Java ME = Edisi Mikro . Ini adalah platform untuk mengembangkan aplikasi untuk perangkat seluler dan sistem tertanam seperti set-top box. Java ME menyediakan subset fungsionalitas Java SE, tetapi juga memperkenalkan perpustakaan khusus untuk perangkat seluler. Karena Java ME didasarkan pada versi Java SE yang lebih lama, beberapa fitur bahasa baru yang diperkenalkan di Java 1.5 (misalnya generik) tidak tersedia.

Jika Anda baru mengenal Java, pasti mulai dengan Java SE.

6006604
sumber
157
Saya tidak setuju dengan merekomendasikan IDE kepada seseorang yang belum pernah mengkodekan Java sebelumnya. Tulis beberapa menggunakan baris perintah terlebih dahulu sehingga Anda dapat memiliki kesempatan berjuang memahami apa yang dimaksud CLASSPATH. Jika Anda menggunakan Eclipse sebelum memahami Java, itu adalah dua hal besar yang Anda tidak tahu.
duffymo
47
@duffymo IMO sebenarnya adalah ide yang bagus untuk memiliki rekomendasi IDE, karena pengkodean dengan editor teks biasa tidak memberikan manfaat dalam mempelajari bahasa baru, memiliki intellisense dan pelengkapan otomatis adalah bantuan yang sangat berharga bagi seorang programmer yang sudah mengetahui ekosistem lain untuk menjadi akrab dengan lingkungan baru.
Felice Pollano
4
@duffymo Saya masih membaca ini setelah 5 tahun karena Google membawa saya ke sini jadi saya kira masih ada gunanya memulai diskusi. Dalam contoh khusus ini, saya setuju dengan argumen Anda tentang IDE.
qutab
8
Saya melihat tidak ada yang salah dengan membahas masalah yang sulit dan tak lekang oleh waktu.
LegendLength
2
Apakah hanya edisi JDK yang spesifik? atau JRE dan JVM berbeda untuk SE & EE?
Arun SR
68

Berikut adalah beberapa perbedaan dalam hal API

Java SE termasuk memiliki API berikut dan banyak lagi

  • applet
  • awt
  • rmi
  • jdbc
  • ayunan
  • koleksi
  • xml mengikat
  • JavaFX (Digabung ke Java SE 8)
  • API Streaming Koleksi 8 Java
  • API Java 9 Reactive Streams
  • Java 9 HTTP / 2 API

Java EE mencakup API berikut dan banyak lagi lainnya

  • servlet
  • websocket
  • wajah java
  • injeksi ketergantungan
  • ejb
  • kegigihan
  • transaksi
  • jms
  • api batch

Java ME termasuk API berikut dan banyak lagi

  • Pesan Nirkabel
  • Layanan Web Java ME
  • API Layanan Keamanan dan Kepercayaan
  • Lokasi
  • API XML Seluler

Semoga ini membantu.

tharindu_DG
sumber
1
Seperti yang disajikan, apakah itu berarti bahwa apa yang ada di SE tidak termasuk dalam EE? Dan apa yang ada di ME tidak ada di EE? Tampaknya jika Anda menginginkan Perpesanan Nirkabel, misalnya, Anda membutuhkan AKU dan tidak tersedia di EE. Apakah ini benar?
ejbytes
Pada Java EE Versi 6, apakah API Koleksi juga merupakan bagian dari Java EE?
Sriyank Siddhartha
52

Java SE adalah dasar di mana Java EE dibangun.

Java ME adalah subset dari SE untuk perangkat seluler.

Jadi Anda harus menginstal Java SE untuk proyek Anda.

Duffymo
sumber
36

Menurut dokumentasi Oracle , sebenarnya ada empat platform Java:

  • Platform Java, Edisi Standar (Java SE)
  • Platform Java, Edisi Perusahaan (Java EE)
  • Platform Java, Edisi Mikro (Java ME)
  • JavaFX

Java SE adalah untuk mengembangkan aplikasi desktop dan itu adalah dasar untuk mengembangkan dalam bahasa Java. Ini terdiri dari alat pengembangan, teknologi penyebaran, dan perpustakaan kelas lainnya dan toolkit yang digunakan dalam aplikasi Java. Java EE dibangun di atas Java SE, dan digunakan untuk mengembangkan aplikasi web dan aplikasi perusahaan skala besar. Java ME adalah subset dari Java SE. Ini menyediakan API dan mesin virtual footprint kecil untuk menjalankan aplikasi Java pada perangkat kecil. JavaFX adalah platform untuk membuat aplikasi internet yang kaya menggunakan API antarmuka pengguna yang ringan. Ini adalah tambahan terbaru untuk keluarga platform Java.

Sebenarnya, platform ini adalah spesifikasi; mereka adalah norma, bukan perangkat lunak. Platform Java, Kit Pengembangan Edisi Standar (JDK) adalah implementasi resmi dari spesifikasi Java SE, yang disediakan oleh Oracle. Ada juga implementasi lain, seperti OpenJDK dan IBM J9.

Orang-orang yang baru mengenal Java mengunduh JDK untuk platform dan sistem operasi mereka (Oracle JDK tersedia untuk diunduh di sini .)

Jan Bodnar
sumber
1
Memang benar untuk Java 6. Dokumentasi Java 7 mengatakan bahwa ada 3 platform dan JavaFX adalah bagian dari Java SE.
Jelaskan
Java SE untuk pengembangan aplikasi desktop Java EE digunakan untuk mengembangkan aplikasi web dan aplikasi perusahaan skala besar.
AyukNayr
20

Ketika saya menemukan pertanyaan ini, saya menemukan informasi yang diberikan pada tutorial Oracle sangat lengkap dan layak untuk dibagikan:

Platform Bahasa Pemrograman Java

Ada empat platform bahasa pemrograman Java:

  • Platform Java, Edisi Standar (Java SE)

  • Platform Java, Edisi Perusahaan (Java EE)

  • Platform Java, Edisi Mikro (Java ME)

  • JavaFX

Semua platform Java terdiri dari Java Virtual Machine (VM) dan antarmuka pemrograman aplikasi (API). Java Virtual Machine adalah program, untuk platform perangkat keras dan perangkat lunak tertentu, yang menjalankan aplikasi teknologi Java. API adalah kumpulan komponen perangkat lunak yang dapat Anda gunakan untuk membuat komponen atau aplikasi perangkat lunak lain. Setiap platform Java menyediakan mesin virtual dan API, dan ini memungkinkan aplikasi yang ditulis untuk platform tersebut berjalan pada sistem yang kompatibel dengan semua keunggulan bahasa pemrograman Java: platform-independensi, daya, stabilitas, kemudahan pengembangan, dan keamanan.

Java SE

Ketika kebanyakan orang memikirkan bahasa pemrograman Java, mereka memikirkan Java SE API. API Java SE menyediakan fungsionalitas inti dari bahasa pemrograman Java. Ini mendefinisikan segala sesuatu dari tipe dasar dan objek bahasa pemrograman Java ke kelas tingkat tinggi yang digunakan untuk jaringan, keamanan, akses basis data, pengembangan antarmuka pengguna grafis (GUI), dan parsing XML.

Selain API inti, platform Java SE terdiri dari mesin virtual, alat pengembangan, teknologi penyebaran, dan perpustakaan kelas lainnya serta toolkit yang biasa digunakan dalam aplikasi teknologi Java.

Java EE

Platform Java EE dibangun di atas platform Java SE. Platform Java EE menyediakan lingkungan API dan runtime untuk mengembangkan dan menjalankan aplikasi jaringan berskala besar, bertingkat, dapat diukur, andal, dan aman.

Java ME

Platform Java ME menyediakan API dan mesin virtual footprint kecil untuk menjalankan aplikasi bahasa pemrograman Java pada perangkat kecil, seperti ponsel. API adalah subset dari Java SE API, bersama dengan perpustakaan kelas khusus yang berguna untuk pengembangan aplikasi perangkat kecil. Aplikasi Java ME seringkali merupakan klien dari layanan platform Java EE.

JavaFX

JavaFX adalah platform untuk membuat aplikasi internet yang kaya menggunakan API antarmuka pengguna yang ringan. Aplikasi JavaFX menggunakan grafik akselerasi perangkat keras dan mesin media untuk mengambil keuntungan dari klien berkinerja tinggi dan tampilan-dan-rasa modern serta API tingkat tinggi untuk menghubungkan ke sumber data jaringan. Aplikasi JavaFX mungkin adalah klien layanan platform Java EE.

Tarik
sumber
1
disalin dari situs oracle :)
Irfan Nasim
1
@IrfanNasim Saya tahu itu disalin dari Oracle dan saya sebutkan itu !! apakah Anda membaca jawaban dari atas ?! Dan tahukah Anda bahwa di SO ketika Anda memberikan tautan, Anda juga harus menyalin informasi penting, karena begitu tautannya tidak mutakhir atau tidak berfungsi, orang masih bisa membaca apa yang ada di tautan itu !! Aneh bahwa Anda memiliki 198 perwakilan dan Anda masih tidak tahu aturannya !!
Tarik
13

Saya kira Java SE (Edisi Standar) adalah yang harus saya instal di desktop Windows 7 saya

Ya, tentu saja . Java SE adalah yang terbaik untuk memulai. BTW Anda harus mempelajari dasar-dasar Java. Itu berarti Anda harus mempelajari beberapa perpustakaan dan API di Java SE.

Perbedaan antara Edisi Platform Java:

Java Micro Edition (Java ME):

  • Lingkungan runtime yang sangat optimal.
  • Targetkan produk konsumen ( Pager , ponsel).
  • Java ME sebelumnya dikenal sebagai Java 2 Platform, Micro Edition atau J2ME.

Java Standard Edition (Java SE):

Alat Java, runtime, dan API untuk pengembang menulis, menggunakan, dan menjalankan applet dan aplikasi. Java SE sebelumnya dikenal sebagai Platform Java 2, Edisi Standar atau J2SE. (semua orang / pemula mulai dari ini)

Java Enterprise Edition (Java EE):

Menargetkan aplikasi sisi server kelas perusahaan . Java EE sebelumnya dikenal sebagai Java 2 Platform, Enterprise Edition atau J2EE.

Pertanyaan duplikat lain untuk pertanyaan ini.


Terakhir, tentang J. kebingungan

JVM (Java Virtual Machine):

JVM adalah bagian dari JDK dan JRE yang menerjemahkan kode byte Java dan menjalankannya sebagai kode asli pada mesin klien.

JRE (Java Runtime Environment):

Ini adalah lingkungan yang disediakan untuk program java untuk dieksekusi. Ini berisi JVM, perpustakaan kelas, dan file pendukung lainnya. Itu tidak mengandung alat pengembangan seperti kompiler, debugger dan sebagainya.

JDK (Java Development Kit):

JDK berisi alat yang diperlukan untuk mengembangkan program java (javac, java, javadoc, appletviewer, jdb, javap, rmic, ...) dan JRE untuk menjalankan program.

Java SDK (Perangkat Pengembangan Perangkat Lunak Java):

SDK terdiri dari JDK dan perangkat lunak tambahan, seperti server aplikasi, debugger, dan dokumentasi.

Java SE:

Platform Java, Edisi Standar (Java SE) memungkinkan Anda mengembangkan dan menggunakan aplikasi Java di desktop dan server (sama seperti SDK).

J2SE, J2ME, J2EE

Edisi Java apa saja dari 1,2 hingga 1,5

Baca lebih lanjut tentang topik ini:

Blasanka
sumber
11

Ya, Java SE adalah tempat untuk memulai. Semua tugas yang Anda sebutkan dapat ditangani.

Java ME adalah Mobile Edition, dan EE adalah Enterprise Edition; ini adalah versi khusus / diperpanjang dari Edisi Standar.

Péter Török
sumber
7

Ya, Anda harus mulai dengan Java SE. Java EE adalah untuk aplikasi web dan Java ME adalah untuk aplikasi mobile - keduanya dibangun dari SE.

Michael
sumber
6

Java SE (Edisi Standar) untuk membangun aplikasi desktop.

Java ME (Micro Edition) untuk perangkat seluler lama.

Java EE (Enterprise Edition) adalah untuk mengembangkan aplikasi berbasis web.

Berikan Gubatan
sumber
2

Jika saya jadi Anda, saya akan menginstal Java SE SDK. Setelah terinstal, pastikan Anda memiliki set variabel lingkungan JAVA_HOME dan tambahkan% JAVA_HOME% \ bin dir ke path Anda.

Corv1nus
sumber
1

Pengembang menggunakan edisi yang berbeda dari platform Java untuk membuat program Java yang berjalan pada komputer desktop, browser web, server web, perangkat informasi seluler (seperti telepon fitur), dan perangkat tertanam (seperti kotak dekoder televisi).

Platform Java, Edisi Standar (Java SE): Platform Java untuk mengembangkan aplikasi, yang merupakan program mandiri yang berjalan di desktop. Java SE juga digunakan untuk mengembangkan applet, yang merupakan program yang berjalan di browser web.

Platform Java, Edisi Perusahaan (Java EE): Platform Java untuk mengembangkan aplikasi dan servlet yang berorientasi perusahaan, yang merupakan program server yang sesuai dengan API Servlet Java EE. Java EE dibangun di atas Java SE.

Platform Java, Edisi Mikro (Java ME): Platform Java untuk mengembangkan MIDlets, yang merupakan program yang berjalan di perangkat informasi seluler, dan Xlets, yang merupakan program yang berjalan di perangkat yang disematkan.

Tapas Pal
sumber
0

SE (JDK) memiliki semua perpustakaan yang Anda perlukan untuk memotong gigi di Jawa. Saya merekomendasikan Netbeans IDE karena ini dibundel dengan SE (JDK) langsung dari Oracle. Jangan lupa untuk mengatur variabel "path" dan "classpath" terutama jika Anda akan mencoba baris perintah. Dengan sistem 64 bit masukkan "System Path" misalnya C: \ Program Files (x86) \ Java \ jdk1.7.0 variabel sebelum C: \ Windows \ system32; untuk mengarahkan sistem ke JDK Anda.

semoga ini membantu.

pengguna3064248
sumber
0

Java SE digunakan untuk aplikasi desktop dan fungsi inti sederhana. Java EE digunakan untuk desktop, tetapi juga pengembangan web, jaringan, dan hal-hal lanjutan.

sandhu
sumber
0

EE: - Edisi Perusahaan: - Edisi Java ini dirancang khusus untuk aplikasi perusahaan / bisnis di mana kita harus berurusan dengan sejumlah server yang berbeda dengan kepentingan keamanan, manajemen transaksi dll.

SE: - Edisi Standar: - Edisi ini untuk aplikasi standar.

ME: - Micro Edition: - Edisi java ini dirancang khusus untuk platform ponsel. Di mana lebih penting diberikan pada manajemen memori karena ada sumber daya memori yang terbatas di ponsel.

Jadi pada dasarnya JAVA memiliki edisi yang berbeda untuk persyaratan yang berbeda.

romil
sumber