Разница между Java SE / EE / ME?

326

Какой из них я должен установить, когда я хочу начать изучать Java? Я собираюсь начать с некоторых основ, поэтому я напишу простые программы, которые создают файлы, каталоги, редактируют XML-файлы и так далее, пока ничего сложного.

Я думаю, что Java SE (Standard Edition) - это то, что я должен установить на свой рабочий стол Windows 7 У меня уже есть Komodo IDE, которую я буду использовать для написания кода Java.

Ричард Кноп
источник
6
Вы должны начать с изучения Java SE. Поначалу Java EE может вызывать недоумение. Когда вы будете готовы к этому, взгляните на эту превосходную страницу обзора Java EE 7, чтобы начать. Особенно хорошо начать с руководства по Oracle EE 7 Oracle .
Декстер Мейерс

Ответы:

545

Java SE = стандартное издание . Это основная платформа программирования Java. Он содержит все библиотеки и API, которые должен выучить любой Java-программист (java.lang, java.io, java.math, java.net, java.util и т. Д.).

Java EE = Enterprise Edition . Из Википедии:

Платформа Java (Enterprise Edition) отличается от платформы Java Standard Edition (Java SE) тем, что она добавляет библиотеки, которые предоставляют функциональные возможности для развертывания отказоустойчивого, распределенного, многоуровневого программного обеспечения Java, основанного главным образом на модульных компонентах, работающих на сервере приложений. ,

Другими словами, если ваше приложение требует очень крупномасштабной распределенной системы, вам следует рассмотреть возможность использования Java EE. Созданный на основе Java SE, он предоставляет библиотеки для доступа к базе данных (JDBC, JPA), удаленного вызова методов (RMI), обмена сообщениями ( JMS ), веб-сервисов, обработки XML и определяет стандартные API-интерфейсы для Enterprise JavaBeans, сервлетов, портлетов, Java Страницы сервера и т.д ...

Java ME = Micro Edition . Это платформа для разработки приложений для мобильных устройств и встроенных систем, таких как телевизионные приставки. Java ME предоставляет подмножество функциональных возможностей Java SE, но также представляет библиотеки, специфичные для мобильных устройств. Поскольку Java ME основан на более ранней версии Java SE, некоторые из новых языковых функций, представленных в Java 1.5 (например, обобщенные), недоступны.

Если вы новичок в Java, обязательно начните с Java SE.

6006604
источник
157
Я не согласился бы рекомендовать IDE тому, кто никогда раньше не кодировал Java. Сначала напишите несколько слов с использованием командной строки, чтобы у вас была возможность понять, что означает CLASSPATH. Если вы используете Eclipse до того, как разберетесь в Java, это две большие вещи, о которых вы не знаете.
duffymo
47
@duffymo IMO на самом деле это хорошая идея иметь рекомендацию IDE, потому что кодирование с помощью простого текстового редактора не дает никакой пользы в изучении нового языка, поскольку интеллигентность и автозаполнение являются неоценимой помощью для программиста, уже знающего, что другие экосистемы стали знакомы с новой средой.
Феличе Поллано
4
@duffymo Я все еще читаю это через 5 лет, так как Google привел меня сюда, поэтому я думаю, что есть смысл начинать обсуждение. В этом конкретном случае я согласен с вашими аргументами по поводу IDE.
Qutab
8
Я не вижу ничего плохого в обсуждении сложных и вечных вопросов.
LegendLength
2
Только для JDK? или JRE и JVM отличаются для SE & EE?
Арун С.Р.
68

Вот некоторые различия с точки зрения API

Java SE включает в себя следующие API и многие другие

  • апплет
  • АВТ
  • радиомагнитный указатель
  • JDBC
  • свинг
  • коллекции
  • XML-привязка
  • JavaFX (объединен с Java SE 8)
  • API потоковой передачи коллекций Java 8
  • Java 9 Reactive Streams API
  • Java 9 HTTP / 2 API

Java EE включает в себя следующие API и многие другие

  • сервлет
  • WebSocket
  • лица java
  • внедрение зависимости
  • EJB
  • упорство
  • сделка
  • JMS
  • пакетный API

Java ME включает в себя следующие API и многие другие

  • Беспроводная передача сообщений
  • Веб-сервисы Java ME
  • API служб безопасности и доверия
  • Расположение
  • Мобильный XML API

Надеюсь это поможет.

tharindu_DG
источник
1
Как представлено, это означает, что то, что в SE, не включено в EE? А что во мне не в EE? Кажется, что если вы хотите, например, Wireless Messaging, вам нужен ME, и он не доступен в EE. Это верно?
ejbytes
Начиная с Java EE версии 6, API-интерфейс Collections также является частью Java EE?
Шриянк Сиддхартха
52

Java SE является основой, на которой построен Java EE.

Java ME является подмножеством SE для мобильных устройств.

Поэтому вы должны установить Java SE для вашего проекта.

duffymo
источник
36

Согласно документации Oracle , на самом деле существует четыре платформы Java:

  • Платформа Java, стандартная версия (Java SE)
  • Платформа Java, Enterprise Edition (Java EE)
  • Платформа Java, Micro Edition (Java ME)
  • JavaFX

Java SE предназначена для разработки настольных приложений и является основой для разработки на языке Java. Он состоит из инструментов разработки, технологий развертывания и других библиотек классов и наборов инструментов, используемых в приложениях Java. Java EE построен на основе Java SE и используется для разработки веб-приложений и крупномасштабных корпоративных приложений. Java ME является подмножеством Java SE. Он предоставляет API и небольшую виртуальную машину для запуска приложений Java на небольших устройствах. JavaFX - это платформа для создания многофункциональных интернет-приложений с использованием легкого API пользовательского интерфейса. Это недавнее дополнение к семейству платформ Java.

Строго говоря, эти платформы являются спецификациями; это нормы, а не программное обеспечение. Платформа Java, Standard Edition Development Kit (JDK), является официальной реализацией спецификации Java SE, предоставленной Oracle. Есть и другие реализации, такие как OpenJDK и IBM J9.

Новички в Java скачивают JDK для своей платформы и операционной системы (JDK от Oracle можно скачать здесь ).

Ян Боднар
источник
1
Это верно для Java 6. Документация Java 7 гласит, что существует 3 платформы и JavaFX является частью Java SE.
Javatar
Java SE предназначена для разработки настольных приложений Java EE используется для разработки веб-приложений и крупномасштабных корпоративных приложений.
АюкНайр
20

Когда я натолкнулся на этот вопрос, я нашел информацию, представленную в руководстве по Oracle, очень полной и заслуживающей того, чтобы ею поделиться:

Языковые платформы программирования Java

Существует четыре платформы языка программирования Java:

  • Платформа Java, стандартная версия (Java SE)

  • Платформа Java, Enterprise Edition (Java EE)

  • Платформа Java, Micro Edition (Java ME)

  • JavaFX

Все платформы Java состоят из виртуальной машины Java (VM) и интерфейса прикладного программирования (API). Виртуальная машина Java - это программа для конкретной аппаратной и программной платформы, которая запускает приложения на основе технологии Java. API - это набор программных компонентов, которые вы можете использовать для создания других программных компонентов или приложений. Каждая платформа Java предоставляет виртуальную машину и API, и это позволяет приложениям, написанным для этой платформы, работать на любой совместимой системе со всеми преимуществами языка программирования Java: независимость от платформы, мощность, стабильность, простота разработки и безопасность.

Java SE

Когда большинство людей думают о языке программирования Java, они думают об API Java SE. API Java SE обеспечивает основные функциональные возможности языка программирования Java. Он определяет все - от базовых типов и объектов языка программирования Java до классов высокого уровня, которые используются для работы в сети, безопасности, доступа к базе данных, разработки графического пользовательского интерфейса (GUI) и анализа XML.

В дополнение к основному API платформа Java SE состоит из виртуальной машины, инструментов разработки, технологий развертывания и других библиотек классов и наборов инструментов, обычно используемых в приложениях технологии Java.

Java EE

Платформа Java EE основана на платформе Java SE. Платформа Java EE предоставляет API и среду выполнения для разработки и запуска крупномасштабных, многоуровневых, масштабируемых, надежных и безопасных сетевых приложений.

Java ME

Платформа Java ME предоставляет API и небольшую виртуальную машину для запуска приложений языка программирования Java на небольших устройствах, таких как мобильные телефоны. API является подмножеством API Java SE, наряду со специальными библиотеками классов, полезными для разработки приложений для небольших устройств. Приложения Java ME часто являются клиентами служб платформы Java EE.

JavaFX

JavaFX - это платформа для создания многофункциональных интернет-приложений с использованием легкого API пользовательского интерфейса. В приложениях JavaFX используются графические и мультимедийные движки с аппаратным ускорением, позволяющие использовать преимущества высокопроизводительных клиентов, современный внешний вид и высокоуровневые API-интерфейсы для подключения к сетевым источникам данных. Приложения JavaFX могут быть клиентами служб платформы Java EE.

Тарик
источник
1
скопировано с сайта оракула :)
Ирфан Насим
1
@ IrfanNasim Я знаю, что это скопировано с Oracle, и я упоминал об этом! ты прочитал ответ сверху ?! И знаете ли вы, что в SO, когда вы предоставляете ссылку, вы должны также скопировать важную информацию, потому что, если ссылка не обновлена ​​или не работает, люди все равно могут прочитать то, что было в ссылке !! Странно, что у вас 198 представителей, и вы до сих пор не знаете правил !!
Тарик
13

Я думаю, что Java SE (Standard Edition) - это то, что я должен установить на свой рабочий стол Windows 7

Да, конечно . Java SE - лучший вариант для начала. Кстати, вы должны изучить основы Java. Это означает, что вы должны изучить некоторые библиотеки и API в Java SE.

Разница между выпусками Java Platform:

Java Micro Edition (Java ME):

  • Высоко оптимизированная среда выполнения.
  • Целевые потребительские товары ( пейджеры , мобильные телефоны).
  • Java ME ранее была известна как Java 2 Platform, Micro Edition или J2ME.

Стандартная версия Java (Java SE):

Инструменты Java, среды выполнения и API для разработчиков, пишущих, внедряющих и запускающих апплеты и приложения. Java SE ранее была известна как Java 2 Platform, Standard Edition или J2SE. (все / начинающие, начиная с этого)

Java Enterprise Edition (Java EE):

Предназначен для серверных приложений корпоративного класса . Java EE ранее была известна как Java 2 Platform, Enterprise Edition или J2EE.

Еще один дублированный вопрос на этот вопрос.


Наконец, о Дж .. путаница

JVM (виртуальная машина Java):

JVM является частью JDK и JRE, которая переводит байтовые коды Java и выполняет их как собственный код на клиентском компьютере.

JRE (среда выполнения Java):

Это среда, предусмотренная для выполнения Java-программ. Он содержит JVM, библиотеки классов и другие вспомогательные файлы. Он не содержит никаких инструментов разработки, таких как компилятор, отладчик и так далее.

JDK (Java Development Kit):

JDK содержит инструменты, необходимые для разработки java-программ (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

Узнайте больше об этих темах:

Blasanka
источник
11

Да, Java SE - это то, с чего начать. Все задачи, которые вы упоминаете, могут быть выполнены с ним.

Java ME - мобильная версия, а EE - корпоративная версия; это специализированные / расширенные версии 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 в ваш путь.

Corv1nus
источник
1

Разработчики используют различные выпуски платформы Java для создания программ Java, которые запускаются на настольных компьютерах, веб-браузерах, веб-серверах, мобильных информационных устройствах (например, функциональных телефонах) и встроенных устройствах (например, телевизионных приставках).

Java Platform, Standard Edition (Java SE): платформа Java для разработки приложений, которые представляют собой автономные программы, работающие на настольных компьютерах. Java SE также используется для разработки апплетов, которые являются программами, которые запускаются в веб-браузерах.

Платформа Java, Enterprise Edition (Java EE). Платформа Java для разработки ориентированных на предприятия приложений и сервлетов, которые представляют собой серверные программы, соответствующие API сервлетов Java EE. Java EE построен на основе Java SE.

Платформа Java, Micro Edition (Java ME): Платформа Java для разработки MID-летов, которые являются программами, которые работают на мобильных информационных устройствах, и Xlets, которые являются программами, которые работают на встроенных устройствах.

Тапас Пал
источник
0

SE (JDK) имеет все библиотеки, которые вам когда-либо понадобятся, чтобы порезаться на Java. Я рекомендую среду IDE Netbeans, поскольку она поставляется вместе с SE (JDK) прямо из Oracle. Не забудьте установить переменные «path» и «classpath», особенно если вы собираетесь использовать командную строку. В 64-битной системе вставьте «Системный путь», например, переменную C: \ Program Files (x86) \ Java \ jdk1.7.0 перед C: \ Windows \ system32; направить систему к вашему JDK.

надеюсь это поможет.

user3064248
источник
0

Java SE используется для настольных приложений и простых основных функций. Java EE используется для настольных компьютеров, а также для веб-разработки, работы в сети и для продвинутых задач.

Санду
источник
0

EE: - Enterprise Edition: - Эта версия Java специально разработана для корпоративных приложений / бизнеса, где нам приходится иметь дело с множеством различных серверов, имеющих важное значение для безопасности, управления транзакциями и т. Д.

SE: - Standard Edition: - Это издание для стандартных приложений.

Я: - Micro Edition: - Это Java-издание специально разработано для платформ мобильных телефонов. Где больше внимания уделяется управлению памятью, поскольку ресурсы мобильных телефонов ограничены.

Так что в основном у JAVA разные версии для разных требований.

romil
источник