Diferença entre Java SE / EE / ME?

326

Qual deles devo instalar quando quiser começar a aprender Java? Vou começar com algumas noções básicas, por isso vou escrever programas simples que criam arquivos, diretórios, editam arquivos XML e assim por diante, nada muito complexo por enquanto.

Acho que o Java SE (Standard Edition) é o que devo instalar no meu desktop com Windows 7. Eu já tenho o Komodo IDE, que utilizarei para escrever o código Java.

Richard Knop
fonte
6
Você deve começar aprendendo o Java SE. O Java EE pode ser um pouco desconcertante a princípio. Quando estiver pronto, dê uma olhada nesta excelente página de visão geral do Java EE 7 para começar. Especialmente o tutorial do Java EE 7 Oracle é um bom lugar para começar.
Dexter meyers

Respostas:

545

Java SE = Standard Edition . Esta é a principal plataforma de programação Java. Ele contém todas as bibliotecas e APIs que qualquer programador Java deve aprender (java.lang, java.io, java.math, java.net, java.util, etc ...).

Java EE = Enterprise Edition . Da Wikipedia:

A plataforma Java (Enterprise Edition) difere da Plataforma Java Standard Edition (Java SE), na medida em que adiciona bibliotecas que fornecem funcionalidade para implantar software Java de várias camadas, tolerante a falhas, distribuído e baseado em componentes modulares executados em um servidor de aplicativos .

Em outras palavras, se seu aplicativo exigir um sistema distribuído de escala muito grande, considere o uso do Java EE. Construído sobre o Java SE, fornece bibliotecas para acesso ao banco de dados (JDBC, JPA), RMI (Remote Method Invocation), sistema de mensagens ( JMS ), serviços da Web, processamento XML e define APIs padrão para Enterprise JavaBeans, servlets, portlets, Java Páginas de servidor, etc ...

Java ME = Micro Edition . Esta é a plataforma para o desenvolvimento de aplicativos para dispositivos móveis e sistemas embarcados, como decodificadores. O Java ME fornece um subconjunto da funcionalidade do Java SE, mas também apresenta bibliotecas específicas para dispositivos móveis. Como o Java ME é baseado em uma versão anterior do Java SE, alguns dos novos recursos de linguagem introduzidos no Java 1.5 (por exemplo, genéricos) não estão disponíveis.

Se você é novo no Java, comece definitivamente com o Java SE.

6006604
fonte
157
Eu discordo de recomendar um IDE para alguém que nunca codificou Java antes. Escreva alguns usando a linha de comando primeiro para ter uma chance de lutar para entender o que significa CLASSPATH. Se você usa o Eclipse antes de entender Java, são duas coisas importantes das quais você ignora.
Duffymo 18/05
47
@duffymo IMO Na verdade, é uma boa idéia ter uma recomendação de IDE, porque a codificação com um editor de texto sem formatação não traz nenhum benefício em aprender um novo idioma, ter bom senso e autocompletar é uma ajuda inestimável para um programador que já conhece outros ecossistemas. familiarizado com o novo ambiente.
Felice Pollano 22/03
4
@duffymo Ainda estou lendo isso depois de cinco anos, quando o Google me trouxe aqui, então acho que ainda há um ponto em iniciar uma discussão. Neste caso específico, porém, concordo com seus argumentos sobre IDEs.
qutab
8
Não vejo nada de errado em discutir questões difíceis e atemporais.
usar o seguinte comando
2
Apenas a edição JDK é específica? ou JRE e JVM são diferentes para SE & EE?
Arun SR
68

Aqui estão algumas diferenças em termos de APIs

O Java SE inclui possui as seguintes APIs e muito mais

  • applet
  • awt
  • rmi
  • jdbc
  • balanço
  • coleções
  • ligação xml
  • JavaFX (mesclado ao Java SE 8)
  • API de streaming de coleções do Java 8
  • API do Java 9 Reactive Streams
  • API Java 9 HTTP / 2

O Java EE inclui as seguintes APIs e muito mais

  • servlet
  • websocket
  • rostos de java
  • Injeção de dependência
  • ejb
  • persistência
  • transação
  • jms
  • API do lote

O Java ME inclui as seguintes APIs e muito mais

  • Mensagens sem fio
  • Serviços da Web Java ME
  • API de serviços de segurança e confiança
  • Localização
  • API XML para dispositivos móveis

Espero que isto ajude.

tharindu_DG
fonte
1
Conforme apresentado, isso significa que o que está no SE não está incluído no EE? E o que está em mim não está em EE? Parece que, se você deseja mensagens sem fio, por exemplo, precisa do ME e ele não está disponível no EE. Isso está correto?
ejbytes
No Java EE Versão 6, a API Collections também faz parte do Java EE?
Sriyank Siddhartha
52

O Java SE é a base sobre a qual o Java EE é construído.

Java ME é um subconjunto do SE para dispositivos móveis.

Portanto, você deve instalar o Java SE para seu projeto.

duffymo
fonte
36

De acordo com a documentação do Oracle , existem quatro plataformas Java:

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

O Java SE é para o desenvolvimento de aplicativos de desktop e é a base para o desenvolvimento da linguagem Java. Consiste em ferramentas de desenvolvimento, tecnologias de implantação e outras bibliotecas de classes e kits de ferramentas usados ​​em aplicativos Java. O Java EE é construído sobre o Java SE e é usado para o desenvolvimento de aplicativos da Web e aplicativos corporativos de grande escala. Java ME é um subconjunto do Java SE. Ele fornece uma API e uma máquina virtual de pequena dimensão para executar aplicativos Java em pequenos dispositivos. O JavaFX é uma plataforma para criar aplicativos avançados da Internet usando uma API leve da interface do usuário. É uma adição recente à família de plataformas Java.

Estritamente falando, essas plataformas são especificações; eles são normas, não software. A Plataforma Java, Kit de Desenvolvimento Standard Edition (JDK) é uma implementação oficial da especificação Java SE, fornecida pela Oracle. Existem também outras implementações, como o OpenJDK e o J9 da IBM.

Pessoas novas em Java fazem o download de um JDK para sua plataforma e sistema operacional (o JDK da Oracle está disponível para download aqui .)

Jan Bodnar
fonte
1
É verdade para o Java 6. A documentação do Java 7 diz que existem 3 plataformas e o JavaFX faz parte do Java SE.
Javatar 16/07/14
O Java SE é para o desenvolvimento de aplicativos de desktop. O Java EE é usado para o desenvolvimento de aplicativos da Web e aplicativos corporativos de grande escala.
precisa saber é o seguinte
20

Ao me deparar com essa pergunta, achei as informações fornecidas no tutorial do Oracle muito completas e vale a pena compartilhar:

As plataformas de linguagem de programação Java

Existem quatro plataformas da linguagem de programação Java:

  • Plataforma Java, Standard Edition (Java SE)

  • Plataforma Java, Enterprise Edition (Java EE)

  • Plataforma Java, Micro Edition (Java ME)

  • JavaFX

Todas as plataformas Java consistem em uma Java Virtual Machine (VM) e uma interface de programação de aplicativos (API). A Java Virtual Machine é um programa, para uma plataforma específica de hardware e software, que executa aplicativos de tecnologia Java. Uma API é uma coleção de componentes de software que você pode usar para criar outros componentes ou aplicativos de software. Cada plataforma Java fornece uma máquina virtual e uma API, e isso permite que os aplicativos escritos para essa plataforma sejam executados em qualquer sistema compatível com todas as vantagens da linguagem de programação Java: independência de plataforma, energia, estabilidade, facilidade de desenvolvimento e segurança.

Java SE

Quando a maioria das pessoas pensa na linguagem de programação Java, pensa na API Java SE. A API do Java SE fornece a funcionalidade principal da linguagem de programação Java. Ele define tudo, desde os tipos e objetos básicos da linguagem de programação Java até as classes de alto nível usadas para rede, segurança, acesso ao banco de dados, desenvolvimento da interface gráfica do usuário (GUI) e análise XML.

Além da API principal, a plataforma Java SE consiste em uma máquina virtual, ferramentas de desenvolvimento, tecnologias de implantação e outras bibliotecas de classes e kits de ferramentas comumente usados ​​em aplicativos de tecnologia Java.

Java EE

A plataforma Java EE é construída sobre a plataforma Java SE. A plataforma Java EE fornece uma API e um ambiente de tempo de execução para o desenvolvimento e a execução de aplicativos de rede em larga escala, com várias camadas, escalonáveis, confiáveis ​​e seguras.

Java ME

A plataforma Java ME fornece uma API e uma máquina virtual de pequena dimensão para executar aplicativos da linguagem de programação Java em pequenos dispositivos, como telefones celulares. A API é um subconjunto da API Java SE, juntamente com bibliotecas de classes especiais úteis para o desenvolvimento de aplicativos para dispositivos pequenos. Os aplicativos Java ME geralmente são clientes dos serviços da plataforma Java EE.

JavaFX

O JavaFX é uma plataforma para criar aplicativos avançados da Internet usando uma API leve da interface do usuário. Os aplicativos JavaFX usam mecanismos de mídia e gráficos acelerados por hardware para tirar proveito de clientes de alto desempenho e uma aparência moderna, bem como APIs de alto nível para conectar-se a fontes de dados em rede. Os aplicativos JavaFX podem ser clientes dos serviços da plataforma Java EE.

Tarik
fonte
1
copiado do site da oracle :)
Irfan Nasim
1
@IrfanNasim Eu sei que foi copiado do Oracle e mencionei isso !! você leu a resposta do topo ?! E você sabe que no SO, ao fornecer um link, você deve copiar também as informações importantes, porque, uma vez que o link não está atualizado ou não está funcionando, as pessoas ainda podem ler o que estava no link !! É estranho que você tenha 198 representantes e ainda não saiba as regras!
Tarik 28/11
13

Acho que o Java SE (Standard Edition) é o que devo instalar na minha área de trabalho do Windows 7

Sim claro . O Java SE é o melhor para começar. BTW, você deve aprender o básico sobre Java. Isso significa que você deve aprender algumas das bibliotecas e APIs no Java SE.

Diferença entre as edições da plataforma Java:

Java Micro Edition (Java ME):

  • Ambiente de tempo de execução altamente otimizado.
  • Segmente produtos de consumo ( pagers , telefones celulares).
  • O Java ME era anteriormente conhecido como Java 2 Platform, Micro Edition ou J2ME.

Java Standard Edition (Java SE):

Ferramentas Java, tempos de execução e APIs para desenvolvedores que escrevem, implantam e executam applets e aplicativos. O Java SE era anteriormente conhecido como Java 2 Platform, Standard Edition ou J2SE. (todos / iniciantes começando com isso)

Java Enterprise Edition (Java EE):

Destina -se a aplicativos do lado do servidor de classe corporativa . O Java EE era conhecido anteriormente como Java 2 Platform, Enterprise Edition ou J2EE.

Outra pergunta duplicada para esta pergunta.


Por fim, sobre J .. confusão

JVM (Java Virtual Machine):

A JVM faz parte do JDK e JRE que traduz códigos de bytes Java e os executa como código nativo na máquina cliente.

JRE (Java Runtime Environment):

É o ambiente fornecido para a execução dos programas java. Ele contém uma JVM, bibliotecas de classes e outros arquivos de suporte. Ele não contém nenhuma ferramenta de desenvolvimento, como compilador, depurador e assim por diante.

JDK (Java Development Kit):

O JDK contém as ferramentas necessárias para desenvolver os programas java (javac, java, javadoc, appletviewer, jdb, javap, rmic, ...) e o JRE para executar o programa.

Java SDK (Java Software Development Kit):

O SDK compreende um JDK e um software extra, como servidores de aplicativos, depuradores e documentação.

Java SE:

A plataforma Java, Standard Edition (Java SE) permite desenvolver e implantar aplicativos Java em desktops e servidores (o mesmo que SDK).

J2SE, J2ME, J2EE

Qualquer edição Java de 1.2 a 1.5

Leia mais sobre estes tópicos:

Blasanka
fonte
11

Sim, o Java SE é por onde começar. Todas as tarefas que você menciona podem ser tratadas com ele.

Java ME é a Mobile Edition e EE é Enterprise Edition; estas são versões especializadas / estendidas da Standard Edition.

Péter Török
fonte
7

Sim, você deve começar com o Java SE. O Java EE é para aplicativos da Web e o Java ME é para aplicativos móveis - ambos compilados no SE.

Michael
fonte
6

O Java SE (Standard Edition) destina-se à criação de aplicativos de desktop.

O Java ME (Micro Edition) é para dispositivos móveis antigos.

O Java EE (Enterprise Edition) destina-se ao desenvolvimento de aplicativos baseados na Web.

Grant Gubatan
fonte
2

Se eu fosse você, instalaria o Java SE SDK. Depois de instalado, verifique se você tem a variável de ambiente JAVA_HOME configurada e inclua o diretório% JAVA_HOME% \ bin em seu caminho.

Corv1nus
fonte
1

Os desenvolvedores usam edições diferentes da plataforma Java para criar programas Java executados em computadores desktop, navegadores da web, servidores da web, dispositivos móveis de informação (como telefones comuns) e dispositivos incorporados (como decodificadores de televisão).

Plataforma Java, Standard Edition (Java SE): A plataforma Java para desenvolvimento de aplicativos, que são programas independentes executados em desktops. O Java SE também é usado para desenvolver applets, que são programas executados em navegadores da web.

Plataforma Java, Enterprise Edition (Java EE): A plataforma Java para o desenvolvimento de aplicativos e servlets orientados para a empresa, que são programas de servidor que estão em conformidade com a API Servlet do Java EE. O Java EE é construído sobre o Java SE.

Plataforma Java, Micro Edition (Java ME): A plataforma Java para o desenvolvimento de MIDlets, que são programas executados em dispositivos móveis de informação, e Xlets, que são programas executados em dispositivos incorporados.

Tapas Pal
fonte
0

O SE (JDK) tem todas as bibliotecas que você precisará para cortar seus dentes em Java. Eu recomendo o Netbeans IDE, pois ele vem junto com o SE (JDK) diretamente do Oracle. Não se esqueça de definir as variáveis ​​"caminho" e "caminho da classe", especialmente se você tentar a linha de comando. Em um sistema de 64 bits, insira a variável "Caminho do sistema", por exemplo, C: \ Arquivos de programas (x86) \ Java \ jdk1.7.0 antes da variável C: \ Windows \ system32; para direcionar o sistema ao seu JDK.

espero que isto ajude.

user3064248
fonte
0

O Java SE é usado para aplicativos de desktop e funções básicas simples. O Java EE é usado para desktop, mas também para desenvolvimento web, redes e coisas avançadas.

sandhu
fonte
0

EE: - Enterprise Edition: - Esta edição Java é projetada especificamente para aplicativos / negócios empresariais, onde temos que lidar com vários servidores diferentes, com importância em segurança, gerenciamento de transações, etc.

SE: - Standard Edition: - Esta edição é para aplicativos padrão.

ME: - Micro Edition: - Esta edição em java foi projetada especificamente para plataformas de telefonia móvel. Onde é dada mais importância ao gerenciamento de memória, pois há recursos limitados de memória nos celulares.

Então, basicamente, o JAVA tem edições diferentes para diferentes requisitos.

romil
fonte