JAR vs WAR
JAR e WAR são dois tipos de archives de arquivo. Mais corretamente, um arquivo WAR também é um arquivo JAR, mas eles são usados para finalidades diferentes. Os arquivos JAR são como arquivos ZIP bem conhecidos. Eles podem ser usados para qualquer arquivamento de propósito geral, mas o uso mais popular de arquivos JAR é usá-los como contêineres para arquivos de classe Java e arquivos de recursos que constituem um aplicativo Java. Os arquivos WAR são usados especificamente para a implementação de aplicativos da web.
O que é JAR?
JAR (Java ARchive) é um arquivo que contém muitos outros arquivos. Os arquivos JAR são geralmente usados por desenvolvedores Java para distribuir aplicativos Java ou bibliotecas Java usando os arquivos JAR como contêineres para os arquivos de classe Java e arquivos de recursos correspondentes (ou seja, texto, áudio, vídeo, etc.). O formato de arquivamento de arquivos conhecido, ZIP, é a base na qual o arquivo JAR é construído. Os usuários podem usar o comando jar do JDK (Java Development Kit) ou o software ZIP normal para extrair o conteúdo dos arquivos JAR. Os arquivos JAR são uma maneira muito conveniente de baixar um aplicativo da web inteiro em um único arquivo, sem ter que baixar todos os arquivos que compõem o aplicativo da web separadamente. Para ler / gravar arquivos JAR, os desenvolvedores Java usam as classes contidas no pacote java.util.zip. Se o arquivo JAR deve ser executado como um aplicativo independente, uma das classes será especificada como a classe “principal” nas entradas do arquivo de manifesto. Os arquivos JAR executáveis podem ser executados usando o comando java com o atributo jar (ou seja, java -jar foo.jar).
O que é WAR?
WAR (Web Application aRchive) é um arquivo JAR usado como contêiner para um grupo de arquivos de recursos de aplicativos da web (que constituem um aplicativo da web), como JSP (Java Server Pages), servlets, arquivos de classe, arquivos XML e web (HTML) Páginas. Os arquivos WAR são identificados por sua extensão de arquivo.war. Eles foram desenvolvidos pela Sun Microsystems (desenvolvedores originais da linguagem de programação Java). As assinaturas digitais usadas em arquivos JAR (para confiar o código) também podem ser usadas em arquivos WAR.
Um arquivo WAR é organizado internamente em uma hierarquia de diretórios especiais. A estrutura do aplicativo da web contida no arquivo WAR é definida no arquivo web.xml (que reside dentro do diretório / WEB-INF). Web.xml também descreve qual URL está conectada a qual servlet. Eles também definem as variáveis que são acessíveis dentro do servelet e as dependências que devem ser configuradas. No entanto, se o arquivo WAR contiver apenas arquivos JSP, o arquivo web.xml será opcional.
Qual é a diferença entre JAR e WAR?
Os arquivos JAR têm a extensão de arquivo.jar, enquanto os arquivos WAR têm a extensão.war. Porém, um arquivo WAR é um tipo específico de arquivo JAR. Os arquivos JAR contêm arquivos de classe, bibliotecas, recursos e arquivos de propriedade. Os arquivos WAR contêm servlets, páginas JSP, páginas HTML, codificação JavaScript. Os arquivos JAR são usados para arquivar um aplicativo Java inteiro (desktop), enquanto os arquivos WAR são usados para implementar aplicativos da web.