Różnica między Java SE / EE / ME?

326

Który powinienem zainstalować, jeśli chcę rozpocząć naukę Java? Zacznę od podstaw, więc napiszę proste programy, które tworzą pliki, katalogi, edytują pliki XML i tak dalej, nic na razie zbyt skomplikowanego.

Wydaje mi się, że Java SE (Standard Edition) powinienem zainstalować na pulpicie Windows 7. Mam już Komodo IDE, którego użyję do napisania kodu Java.

Richard Knop
źródło
6
Powinieneś zacząć od nauki Java SE. Java EE na początku może być nieco oszałamiająca. Kiedy będziesz na to gotowy, spójrz na tę doskonałą stronę przeglądową Java EE 7, aby rozpocząć. Zwłaszcza samouczek Java EE 7 Oracle to dobry początek.
dexter meyers

Odpowiedzi:

545

Java SE = edycja standardowa . Jest to podstawowa platforma programistyczna Java. Zawiera wszystkie biblioteki i interfejsy API, których powinien nauczyć się każdy programista Java (java.lang, java.io, java.math, java.net, java.util itp.).

Java EE = Enterprise Edition . Z Wikipedii:

Platforma Java (Enterprise Edition) różni się od platformy Java Standard Edition (Java SE) tym, że dodaje biblioteki, które zapewniają funkcjonalność do wdrażania odpornego na awarie, rozproszonego, wielopoziomowego oprogramowania Java, opartego głównie na modułowych komponentach działających na serwerze aplikacji .

Innymi słowy, jeśli twoja aplikacja wymaga systemu rozproszonego na bardzo dużą skalę, powinieneś rozważyć użycie Java EE. Zbudowany na bazie Java SE, zapewnia biblioteki dostępu do bazy danych (JDBC, JPA), zdalnego wywoływania metod (RMI), przesyłania komunikatów ( JMS ), usług sieciowych, przetwarzania XML oraz definiuje standardowe interfejsy API dla komponentów Enterprise JavaBeans, serwletów, portletów, Java Strony serwera itp.

Java ME = Micro Edition . Jest to platforma do opracowywania aplikacji na urządzenia mobilne i systemy wbudowane, takie jak dekodery. Java ME zapewnia podzbiór funkcjonalności Java SE, ale wprowadza także biblioteki specyficzne dla urządzeń mobilnych. Ponieważ Java ME opiera się na wcześniejszej wersji Java SE, niektóre nowe funkcje językowe wprowadzone w Javie 1.5 (np. Generyczne) są niedostępne.

Jeśli jesteś nowy w Javie, zdecydowanie zacznij od Java SE.

6006604
źródło
157
Nie chciałbym nie polecać IDE komuś, kto nigdy wcześniej nie kodował Javy. Napisz kilka, używając najpierw wiersza polecenia, abyś miał szansę na zrozumienie, co oznacza CLASSPATH. Jeśli używasz Eclipse, zanim zrozumiesz Javę, to dwie wielkie rzeczy, o których nie wiesz.
duffymo
47
@duffymo IMO to właściwie dobry pomysł na rekomendację IDE, ponieważ kodowanie za pomocą zwykłego edytora tekstu nie daje żadnej korzyści w nauce nowego języka, posiadanie inteligencji i autouzupełniania jest nieocenioną pomocą dla programisty znającego już inne ekosystemy zaznajomiony z nowym środowiskiem.
Felice Pollano
4
@duffymo Wciąż czytam to po 5 latach, gdy Google mnie tu przywiodło, więc myślę, że rozpoczęcie dyskusji jest sensowne. W tym konkretnym przypadku zgadzam się z twoimi argumentami dotyczącymi IDE.
qutab
8
Nie widzę nic złego w omawianiu trudnych i ponadczasowych kwestii.
LegendLength,
2
Czy dotyczy tylko edycji JDK? czy JRE i JVM są różne dla SE i EE?
Arun SR
68

Oto kilka różnic w zakresie interfejsów API

Java SE zawiera następujące interfejsy API i wiele innych

  • aplet
  • awt
  • rmi
  • jdbc
  • huśtawka
  • kolekcje
  • wiązanie xml
  • JavaFX (Scalony z Java SE 8)
  • Interfejs API przesyłania strumieniowego kolekcji Java 8
  • Interfejs API Java 9 Reactive Streams
  • Java 9 HTTP / 2 API

Java EE zawiera następujące interfejsy API i wiele innych

  • serwlet
  • gniazdo sieciowe
  • twarze java
  • zastrzyk zależności
  • ejb
  • trwałość
  • transakcja
  • jms
  • partia API

Java ME zawiera następujące interfejsy API i wiele innych

  • Wiadomości bezprzewodowe
  • Usługi sieciowe Java ME
  • Interfejs API usług bezpieczeństwa i zaufania
  • Lokalizacja
  • Mobilny interfejs API XML

Mam nadzieję że to pomoże.

tharindu_DG
źródło
1
Jak przedstawiono, czy to oznacza, że ​​to, co jest w SE, nie jest uwzględnione w EE? A co jest we MNIE, nie jest w EE? Wygląda na to, że jeśli chcesz na przykład bezprzewodowego przesyłania wiadomości, potrzebujesz ME i nie jest on dostępny w EE. Czy to jest poprawne?
ejbytes
Czy w przypadku wersji Java EE w wersji 6 interfejs API kolekcji jest również częścią oprogramowania Java EE?
Sriyank Siddhartha
52

Java SE jest podstawą, na której zbudowano Java EE.

Java ME to podzbiór SE dla urządzeń mobilnych.

Więc powinieneś zainstalować Java SE dla swojego projektu.

duffymo
źródło
36

Według dokumentacji Oracle istnieją cztery platformy Java:

  • Java Platform, Standard Edition (Java SE)
  • Java Platform, Enterprise Edition (Java EE)
  • Platforma Java, Micro Edition (Java ME)
  • JavaFX

Java SE służy do tworzenia aplikacji komputerowych i jest podstawą do programowania w języku Java. Składa się z narzędzi programistycznych, technologii wdrażania oraz innych bibliotek klas i zestawów narzędzi używanych w aplikacjach Java. Java EE jest oparty na Javie SE i służy do tworzenia aplikacji internetowych i dużych aplikacji korporacyjnych. Java ME jest podzbiorem Java SE. Zapewnia interfejs API i maszynę wirtualną o niewielkich rozmiarach do uruchamiania aplikacji Java na małych urządzeniach. JavaFX to platforma do tworzenia bogatych aplikacji internetowych przy użyciu lekkiego interfejsu API interfejsu użytkownika. Jest to najnowszy dodatek do rodziny platform Java.

Ściśle mówiąc, platformy te są specyfikacjami; są to normy, a nie oprogramowanie. Java Platform, Standard Edition Development Kit (JDK) to oficjalna implementacja specyfikacji Java SE, dostarczona przez Oracle. Istnieją również inne implementacje, takie jak OpenJDK i J9 IBM.

Osoby nowe w Javie pobierają JDK dla swojej platformy i systemu operacyjnego (JDK Oracle jest dostępny do pobrania tutaj ).

Jan Bodnar
źródło
1
Dotyczy to Java 6. Dokumentacja Java 7 mówi, że istnieją 3 platformy, a JavaFX jest częścią Java SE.
Javatar
Java SE służy do tworzenia aplikacji komputerowych Java EE służy do tworzenia aplikacji internetowych i dużych aplikacji korporacyjnych.
AyukNayr,
20

Gdy natrafiłem na to pytanie, okazało się, że informacje zawarte w samouczku Oracle są bardzo kompletne i warte udostępnienia:

Platformy języka programowania Java

Istnieją cztery platformy języka programowania Java:

  • Java Platform, Standard Edition (Java SE)

  • Java Platform, Enterprise Edition (Java EE)

  • Platforma Java, Micro Edition (Java ME)

  • JavaFX

Wszystkie platformy Java składają się z wirtualnej maszyny Java (VM) i interfejsu programowania aplikacji (API). Java Virtual Machine to program dla konkretnej platformy sprzętowej i programowej, który uruchamia aplikacje technologiczne Java. Interfejs API to zbiór składników oprogramowania, których można używać do tworzenia innych składników oprogramowania lub aplikacji. Każda platforma Java zapewnia maszynę wirtualną i interfejs API, dzięki czemu aplikacje napisane dla tej platformy mogą działać na dowolnym kompatybilnym systemie ze wszystkimi zaletami języka programowania Java: niezależność od platformy, moc, stabilność, łatwość programowania i bezpieczeństwo.

Java SE

Kiedy większość ludzi myśli o języku programowania Java, myśli o API Java SE. Interfejs API Java SE zapewnia podstawową funkcjonalność języka programowania Java. Definiuje wszystko, od podstawowych typów i obiektów języka programowania Java do klas wysokiego poziomu, które są używane do pracy w sieci, bezpieczeństwa, dostępu do bazy danych, programowania graficznego interfejsu użytkownika (GUI) i analizowania XML.

Oprócz podstawowego interfejsu API platforma Java SE obejmuje maszynę wirtualną, narzędzia programistyczne, technologie wdrażania oraz inne biblioteki klas i zestawy narzędzi powszechnie używane w aplikacjach technologicznych Java.

Java EE

Platforma Java EE jest zbudowana na platformie Java SE. Platforma Java EE zapewnia interfejs API i środowisko wykonawcze do opracowywania i uruchamiania dużych, wielopoziomowych, skalowalnych, niezawodnych i bezpiecznych aplikacji sieciowych.

Java ME

Platforma Java ME zapewnia interfejs API i maszynę wirtualną o niewielkich rozmiarach do uruchamiania aplikacji języka programowania Java na małych urządzeniach, takich jak telefony komórkowe. API jest podzbiorem Java SE API, wraz ze specjalnymi bibliotekami przydatnymi do tworzenia aplikacji na małe urządzenia. Aplikacje Java ME są często klientami usług platformy Java EE.

JavaFX

JavaFX to platforma do tworzenia bogatych aplikacji internetowych przy użyciu lekkiego interfejsu API interfejsu użytkownika. Aplikacje JavaFX używają akceleracji sprzętowej grafiki i silników multimediów, aby korzystać z wydajniejszych klientów oraz nowoczesnego wyglądu i interfejsów API wysokiego poziomu do łączenia się z sieciowymi źródłami danych. Aplikacje JavaFX mogą być klientami usług platformy Java EE.

Tarik
źródło
1
skopiowane z witryny oracle :)
Irfan Nasim
1
@IrfanNasim Wiem, że zostało skopiowane z Oracle i wspomniałem o tym !! czy przeczytałeś odpowiedź z góry ?! A czy wiesz, że w SO, gdy podajesz link, musisz skopiować również ważne informacje, ponieważ gdy link nie jest aktualny lub nie działa, ludzie nadal mogą przeczytać to, co było w linku !! Dziwne, że masz 198 powtórzeń i nadal nie znasz zasad !!
Tarik
13

Wydaje mi się, że Java SE (Standard Edition) powinienem zainstalować na pulpicie Windows 7

Tak, oczywiście . Java SE jest najlepsza na początek. BTW, musisz nauczyć się podstaw języka Java. Oznacza to, że musisz nauczyć się niektórych bibliotek i interfejsów API w Java SE.

Różnica między edycjami platformy Java:

Java Micro Edition (Java ME):

  • Wysoce zoptymalizowane środowisko wykonawcze.
  • Docelowe produkty konsumenckie ( pagery , telefony komórkowe).
  • Java ME była wcześniej znana jako Java 2 Platform, Micro Edition lub J2ME.

Java Standard Edition (Java SE):

Narzędzia Java, środowiska wykonawcze i interfejsy API dla programistów piszących, wdrażających i uruchamiających aplety i aplikacje. Java SE była wcześniej znana jako Java 2 Platform, Standard Edition lub J2SE. (wszyscy / początkujący od tego)

Java Enterprise Edition (Java EE):

Skierowany do aplikacji klasy korporacyjnej po stronie serwera . Java EE była wcześniej znana jako Java 2 Platform, Enterprise Edition lub J2EE.

Kolejne zduplikowane pytanie do tego pytania.


Wreszcie o zamieszaniu w J ..

JVM (Java Virtual Machine):

JVM jest częścią JDK i JRE, która tłumaczy kody bajtów Java i wykonuje je jako kod macierzysty na komputerze klienckim.

JRE (Java Runtime Environment):

Jest to środowisko zapewniające wykonywanie programów Java. To zawiera JVM, bibliotek klas i inne pliki pomocnicze. Nie zawiera żadnych narzędzi programistycznych, takich jak kompilator, debugger itp.

JDK (Java Development Kit):

JDK zawiera narzędzia potrzebne do opracowania programów Java (javac, java, javadoc, appletviewer, jdb, javap, rmic, ...) i JRE do uruchomienia programu.

Java SDK (Java Software Development Kit):

SDK zawiera JDK i dodatkowe oprogramowanie, takie jak serwery aplikacji, debugery i dokumentacja.

Java SE:

Platforma Java, Standard Edition (Java SE) umożliwia tworzenie i wdrażanie aplikacji Java na komputerach stacjonarnych i serwerach (tak jak SDK).

J2SE, J2ME, J2EE

Dowolna edycja Java od 1.2 do 1.5

Przeczytaj więcej na te tematy:

Blasanka
źródło
11

Tak, Java SE jest od czego zacząć. Wszystkimi zadaniami, o których wspomniałeś, można sobie z tym poradzić.

Java ME to wersja mobilna, a EE to wersja Enterprise; są to specjalistyczne / rozszerzone wersje Standard Edition.

Péter Török
źródło
7

Tak, powinieneś zacząć od Java SE. Java EE jest dla aplikacji internetowych, a Java ME jest dla aplikacji mobilnych - oba te elementy są oparte na SE.

Michał
źródło
6

Java SE (edycja standardowa) służy do tworzenia aplikacji komputerowych.

Java ME (Micro Edition) jest dla starszych urządzeń mobilnych.

Java EE (Enterprise Edition) służy do tworzenia aplikacji internetowych.

Grant Gubatan
źródło
2

Na twoim miejscu zainstalowałbym Java SE SDK. Po zainstalowaniu upewnij się, że masz ustawiony zmienną środowiskową JAVA_HOME i dodaj katalog% JAVA_HOME% \ bin do swojej ścieżki.

Corv1nus
źródło
1

Deweloperzy używają różnych wersji platformy Java do tworzenia programów Java, które działają na komputerach stacjonarnych, przeglądarkach internetowych, serwerach internetowych, mobilnych urządzeniach informacyjnych (takich jak telefony fabularne) i urządzeniach wbudowanych (takich jak dekodery telewizyjne).

Java Platform, Standard Edition (Java SE): platforma Java do tworzenia aplikacji, które są samodzielnymi programami działającymi na komputerach stacjonarnych. Java SE służy również do tworzenia apletów, które są programami działającymi w przeglądarkach internetowych.

Java Platform, Enterprise Edition (Java EE): platforma Java do tworzenia aplikacji i serwletów zorientowanych na przedsiębiorstwa, które są programami serwerowymi zgodnymi z interfejsem API serwletów Java EE. Java EE jest zbudowany na Java SE.

Platforma Java, Micro Edition (Java ME): Platforma Java do opracowywania MIDletów, które są programami działającymi na mobilnych urządzeniach informacyjnych, oraz Xletów, które są programami działającymi na urządzeniach osadzonych.

Tapas Pal
źródło
0

SE (JDK) ma wszystkie biblioteki, których kiedykolwiek będziesz potrzebować, aby obciąć zęby na Javie. Polecam Netbeans IDE, ponieważ jest ono dostarczane w pakiecie z SE (JDK) prosto z Oracle. Nie zapomnij ustawić zmiennych „path” i „classpath”, zwłaszcza jeśli zamierzasz wypróbować wiersz poleceń. W systemie 64-bitowym wstaw zmienną „Ścieżka systemowa”, np. C: \ Program Files (x86) \ Java \ jdk1.7.0 przed C: \ Windows \ system32; aby skierować system do JDK.

mam nadzieję że to pomoże.

użytkownik3064248
źródło
0

Java SE jest używana do aplikacji komputerowych i prostych podstawowych funkcji. Java EE jest używana na komputerach, ale także do tworzenia stron internetowych, tworzenia sieci i zaawansowanych rzeczy.

sandhu
źródło
0

EE: - Edycja Enterprise: - Ta edycja Java została zaprojektowana specjalnie dla aplikacji korporacyjnych / biznesowych, w których mamy do czynienia z wieloma różnymi serwerami mającymi znaczenie dla bezpieczeństwa, zarządzania transakcjami itp.

SE: - Edycja standardowa: - Ta edycja jest przeznaczona do standardowych aplikacji.

ME: - Micro Edition: - To wydanie Java jest specjalnie zaprojektowane dla platform telefonów komórkowych. Tam, gdzie większe znaczenie ma zarządzanie pamięcią, ponieważ w telefonach komórkowych są ograniczone zasoby pamięci.

Zasadniczo JAVA ma różne wersje dla różnych wymagań.

romil
źródło