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
- Programação
- Nenhuma avaliação ainda.
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-srccd recovered-srcjar 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.
| 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 |