Converter jar para java

Converter JAR para JAVA

Extraia o código-fonte incorporado ou descompile as classes JAR em arquivos de código-fonte Java utilizáveis.

Converter ficheiros JAR online

Ainda não temos um conversor online dedicado para JAR para JAVA, mas pode converter ficheiros JAR online para estes formatos:

Como converter jar para java arquivo

Os arquivos de código-fonte são necessários quando um JAR é a única cópia disponível de uma biblioteca ou aplicação Java e seu código precisa ser inspecionado, auditado, modificado ou recompilado. A maioria dos JARs de distribuição contém arquivos .class compilados, portanto recuperar arquivos .java geralmente exige descompilação, e não uma conversão direta de arquivos.

O que um arquivo JAR contém

Um JAR (Java Archive) é um arquivo baseado em ZIP usado por desenvolvedores Java, ferramentas de compilação e fornecedores de aplicações para distribuir bibliotecas, plugins e aplicações. Ele normalmente contém classes compiladas, recursos, metadados de dependências e META-INF/MANIFEST.MF; JARs executáveis podem declarar uma classe de inicialização nesse manifest.

As ferramentas do JDK, Maven, Gradle, Eclipse e IntelliJ IDEA podem criar ou consumir JARs. Um arquivo separado chamado name-sources.jar geralmente contém os arquivos de código-fonte originais e deve ser usado em vez de descompilar o JAR compilado.

O que é um arquivo JAVA

Não existe um formato binário “JAVA” separado. Um arquivo .java é código-fonte Java em texto simples que contém classes, interfaces, métodos, declarações de pacotes e imports. Ele pode ser editado e compilado com javac, desde que as bibliotecas necessárias e o nível de versão do Java estejam disponíveis.

Um JAR normalmente produz muitos arquivos de código-fonte. Suas pastas devem corresponder aos nomes dos pacotes: com.example.Main pertence a com/example/Main.java. O Java exige que uma classe pública de nível superior use o mesmo nome de arquivo que essa classe.

Extraia primeiro o código-fonte existente

Liste o conteúdo do arquivo com o comando jar do JDK:

jar tf app.jar

Se a listagem contiver arquivos .java, extraia-os para um diretório de trabalho vazio:

mkdir recovered-src
cd recovered-src
jar xf ../app.jar

Se um arquivo de código-fonte correspondente estiver disponível, extraia-o em vez disso:

jar xf app-sources.jar

Não confunda recursos como .properties, arquivos XML, imagens ou definições de serviços com código-fonte Java. Extraia-os se forem necessários para o projeto, mas eles não podem ser convertidos em código .java significativo.

Descompile as classes compiladas

Se o JAR contiver apenas arquivos .class, use um descompilador Java para desktop. CFR é uma opção adequada de linha de comando e geralmente lida melhor com bytecode Java mais recente do que muitos descompiladores antigos. Baixe o CFR no site oficial do projeto e execute:

java -jar cfr.jar app.jar --outputdir recovered-src

O CFR grava os arquivos .java recuperados em recovered-src. Para uma opção gráfica, abra o JAR no JD-GUI e selecione File → Save All Sources; o JD-GUI cria um arquivo ZIP que deve ser extraído antes que os arquivos sejam abertos em uma IDE.

O IntelliJ IDEA pode exibir classes descompiladas para inspeção, mas o CFR ou o JD-GUI é preferível quando é necessária uma árvore de código-fonte que possa ser exportada. Para amostras pequenas, públicas e não confidenciais, serviços de navegador como o Decompiler.com podem descompilar JARs sem instalação local; verifique os termos de retenção e privacidade antes de enviar qualquer conteúdo.

Limites de compilação e recuperação

A saída descompilada não é o projeto de código-fonte original. O bytecode não preserva comentários, formatação, a maioria dos nomes de variáveis locais, códigos-fonte de testes, scripts de compilação, histórico de controle de versão e algumas informações de tipos genéricos. A ofuscação pode substituir nomes significativos por identificadores como a e b.

Os arquivos recuperados podem não compilar imediatamente. Adicione as dependências originais do JAR, o código gerado, os processadores de anotações, os recursos e as opções do compilador; em seguida, compile para a versão do Java usada pelas classes originais. Uma versão mais recente de arquivo de classe pode exigir um JDK mais recente e um descompilador compatível com essa versão.

JARs de várias versões podem conter implementações alternativas de classes em META-INF/versions/, e JARs sombreados podem agrupar dependências junto com o código da aplicação. Revise a estrutura de pacotes e o manifest antes de considerar que todas as classes recuperadas fazem parte de um único projeto de código-fonte.

Mantenha JARs privados, de clientes, licenciados ou relacionados à segurança em uma máquina local, em vez de enviá-los para um descompilador online. Descompile apenas softwares que você possui ou está autorizado a inspecionar; o código recuperado continua sujeito aos termos originais de licença e direitos autorais.

Simplificando, é impossível converter JAR para JAVA diretamente.
Portanto, não existe um chamado conversor jar para java ou um conversor online gratuito.

Comparação de formato: JAR vs JAVA

Como os formatos JAR e JAVA se comparam nas propriedades mais importantes para esta conversão.

Comparação dos formatos de arquivo JAR e JAVA
Propriedade .JAR Java Archive .JAVA Java source code file
Padrão aberto Sim Parcialmente aberto
Compressão Ambos Sem compressão
Tamanho típico do arquivo Médio Pequeno
Abre num navegador web Não Não
Edição posterior Limitado Fácil
Suporte a metadados Básico Básico
Legível em texto simples Não Sim
Mais usado para Incorporação em aplicações Produção profissional
Introduzido 1996 1995
Desenvolvedor Oracle (originally Sun Microsystems) Oracle (Java platform; originally Sun Microsystems)
Tipo MIME application/java-archive text/x-java-source

Outras conversões de arquivo .jar

Conversão inversa

Converter para .java
de outros formatos

Compartilhar nas redes sociais: