EAR, WAR e JAR: Formatos de Arquivo em Java

Published: (December 28, 2025 at 02:58 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

Cover image for EAR, WAR e JAR: Formatos de Arquivo em Java

O que são esses formatos?

JAR (Java Archive)

O JAR é o formato mais básico e fundamental em Java. Significa Java Archive e é essencialmente um arquivo compactado no formato ZIP que contém classes compiladas, bibliotecas e recursos de uma aplicação Java.

Características principais

  • Contém arquivos .class compilados
  • Inclui bibliotecas reutilizáveis
  • Pode conter um arquivo META-INF/MANIFEST.MF que define configurações da aplicação
  • É usado para aplicações standalone (desktop ou linha de comando)
  • Pode ser executado diretamente se contiver um método main() definido no manifesto

Estrutura típica

minha-aplicacao.jar
├── com/
│   └── exemplo/
│       ├── Principal.class
│       └── Utilitario.class
├── recursos/
│   └── config.properties
└── META-INF/
    └── MANIFEST.MF

Exemplo de uso

java -jar minha-aplicacao.jar

WAR (Web Archive)

WAR significa Web Archive e é um formato especializado para aplicações web Java. É projetado para ser implantado em servidores de aplicação web como Tomcat, JBoss ou GlassFish.

Características principais

  • Contém servlets, JSPs e controladores web
  • Inclui a estrutura de diretórios específica para aplicações web
  • Contém o arquivo WEB-INF/web.xml (descritor de implantação)
  • Armazena recursos estáticos (HTML, CSS, JavaScript, imagens)
  • Inclui bibliotecas (JARs) necessárias para a aplicação web
  • É implantado em um servidor de aplicação, não executado diretamente

Estrutura típica

minha-aplicacao-web.war
├── index.html
├── css/
│   └── estilo.css
├── js/
│   └── script.js
├── WEB-INF/
│   ├── web.xml
│   ├── classes/
│   │   └── com/exemplo/servlets/MeuServlet.class
│   └── lib/
│       ├── spring-core.jar
│       └── hibernate.jar
└── META-INF/
    └── MANIFEST.MF

Exemplo de implantação

Copie o arquivo WAR para a pasta webapps do Tomcat (ou equivalente) e ele será automaticamente descompactado e executado pelo servidor.

EAR (Enterprise Archive)

EAR significa Enterprise Archive e é o formato mais complexo dos três. É projetado para aplicações empresariais que podem conter múltiplos módulos (web, EJB, bibliotecas compartilhadas).

Características principais

  • Contém múltiplos módulos (WARs, JARs de negócio, etc.)
  • Inclui o arquivo META-INF/application.xml que define a estrutura da aplicação
  • Permite compartilhar bibliotecas comuns entre múltiplos módulos
  • É implantado em servidores de aplicação empresariais (JBoss, WebSphere, GlassFish)
  • Facilita a organização de aplicações complexas com várias camadas

Estrutura típica

minha-aplicacao-enterprise.ear
├── minha-web.war
├── minha-logica-negocio.jar
├── minha-integracao.jar
├── lib/
│   ├── commons-lang.jar
│   └── log4j.jar
└── META-INF/
    ├── application.xml
    └── MANIFEST.MF

Comparação prática

AspectoJARWAREAR
PropósitoAplicações standalone, bibliotecasAplicações webAplicações empresariais
ExecuçãoDireto: java -jar …Via servidor webVia servidor empresarial
Arquivo de configuraçãoMANIFEST.MFWEB-INF/web.xmlMETA-INF/application.xml
Recursos estáticosOpcionalEsperado (HTML, CSS, etc.)Dentro dos módulos (WARs)
MódulosUm único móduloUm móduloMúltiplos módulos
Servidor necessárioNenhumTomcat, Jetty, etc.JBoss, WebSphere, GlassFish, etc.
Uso típicoAPI, ferramentas CLIPortais, sistemas webSistemas bancários, ERP, etc.

Processo de compilação e empacotamento

Independentemente do tipo de artefato, o fluxo geral é:

  1. Compilação – O compilador Java converte arquivos .java em .class.
  2. Empacotamento – Ferramentas como Maven ou Gradle agrupam esses arquivos no formato apropriado (JAR, WAR ou EAR).
  3. Distribuição – O artefato resultante é entregue para execução ou implantação.

Exemplo com Maven (pom.xml)

jar
war
ear

Exemplos práticos

Cenário 1 – Aplicação de desktop

Ferramenta de processamento de imagens empacotada como JAR:

mvn clean package
# Gera: imagem-processor-1.0.jar
java -jar imagem-processor-1.0.jar

Cenário 2 – Site dinâmico

Blog ou e‑commerce empacotado como WAR:

mvn clean package
# Gera: meu-blog-1.0.war
# Copiado para: /tomcat/webapps/
# Acesso: http://localhost:8080/meu-blog

Cenário 3 – Sistema complexo

Sistema bancário com múltiplos serviços empacotado como EAR:

mvn clean package
# Gera: banco-sistema-1.0.ear
# Implantado em: JBoss Application Server

Conclusão

A escolha entre JAR, WAR e EAR depende do tipo de aplicação que você está desenvolvendo:

  • JAR – Versátil, ideal para bibliotecas e aplicações standalone.
  • WAR – Especializado para aplicações web que rodam em servidores servlet.
  • EAR – Destinado a soluções corporativas que exigem múltiplos módulos e recursos avançados de gerenciamento.

Entender as diferenças ajuda a organizar melhor o projeto, escolher as ferramentas corretas e garantir uma implantação mais eficiente.

WAR é para aplicações web, enquanto EAR é para arquiteturas empresariais complexas. Compreender essas diferenças é essencial para qualquer desenvolvedor Java, pois garante que sua aplicação seja empacotada e implantada corretamente.
Back to Blog

Related posts

Read more »

Las interioridades de Maven

Introducción Hoy he perdido dos horas de mi precioso tiempo. Así es. Y todo porque Mavenhttps://maven.apache.org/, a mi juicio, es peculiar. Todo tiene que ver...

Perl 🐪 Weekly #753 - Happy New Year!

Originally published at Perl Weekly 753 Hi there! There wasn’t a lot of action this week, but I ran a live session on contributing to a Perl project and another...