Extrair o código fonte do arquivo .jar


172

Existe uma maneira de extrair o código fonte de um arquivo .jar executável (Java ME)?


3
Mas observe que fazer isso pode ser ilegal, dependendo de você possuir os direitos autorais do jar, o país em que vive e seu objetivo.
Richard Richard

2
Se for de código aberto, obtenha o código do desenvolvedor. Caso contrário, "Qualquer conformidade com o EULA será apreciada".
Andrew Thompson

Verifique o descompilador procyon. Faça o download do jar para descompilar os arquivos jar. Eu dei os passos abaixo
nitin angadi

Respostas:


146

Use JD GUI . Abra o aplicativo, arraste e solte seu arquivo JAR nele.


6
existe uma maneira de obter o código-fonte .jar sem JD GUI?
Zulqurnain Jutt

Uso @ZulqurnainJutt como mencionado na resposta de @ elachancejar xf filename.jar
Arvind Sridharan

46

Você pode extrair um arquivo jar com o comando:

jar xf filename.jar

Referências: documentação JAR da Oracle


18
Isto é equivalente a renomeação filename.jarpara filename.jar.zipe em seguida, basta descompactá-lo.
Mathias Bynens

27
Isso não extrai o código fonte. Extrai o código fonte compilado.
0xcaff

5
@caffinatedmonkey extrai o código-fonte quando o jar contém arquivos java, por exemplo, jarros com nomes geralmente terminados em "-sources". Na verdade, ele extrai apenas arquivos .class quando o jar não contém nenhum arquivo de origem java.
Edwardmp 2/16

37

Eu acredito que isso pode ser feito com muita facilidade. Você sempre pode extrair os arquivos de origem (arquivos Java) de um arquivo jar em um zip.

Etapas para obter fontes de um arquivo jar como um zip:

  1. Faça o download do JAD em http://techieme.in/resources-needed/ e salve-o em qualquer
    local do seu sistema.
  2. Arraste e solte o jar para o qual você deseja as fontes no JAD. 3 A interface do usuário do JAD será aberta com toda a estrutura do pacote em um formato de árvore.
  3. Clique no menu Arquivo e selecione Salvar fontes do jar.
  4. Ele salvará as fontes como um zip com o mesmo nome que o jar.

Espero que isto ajude.

O link está inoperante devido a algum motivo; portanto, adicione o link de onde você pode fazer o download do JDGUI


1
@Nitesh ... Eu estarei postando o link hospedado no meu site ... por favor baixá-lo de lá
Dharam

4
A versão no link techieme funciona muito bem, obrigado!
DerStrom8

29

Seu JAR pode conter origem e javadoc; nesse caso, você pode simplesmente usá-lo jar xf my.jarpara extraí-los.

Caso contrário, você pode usar um descompilador, conforme mencionado na resposta do adarshr:

Use JD GUI . Abra o aplicativo, arraste e solte seu arquivo JAR nele.


21
Observe que os arquivos .jar são na verdade arquivos .zip e podem ser abertos com qualquer ferramenta ZIP.
22611 Chris Nava

11

Eu sei que é uma pergunta antiga Ainda pensei que ajudaria alguém

1) Vá para a pasta do seu arquivo jar.

2) altere a extensão para .zip.

3) Você está pronto e pode facilmente extraí-lo clicando duas vezes nele.

Nota: Eu testei isso no MAC, ele funciona. Espero que ele funcione no Windows também.


2
@JCodex, estou fazendo um projeto de pesquisa sobre a ferramenta de análise de sentimentos "opinionfinder" e seu jar contém de fato os arquivos java AND class. portanto, seu comentário não é 100% verdadeiro. Eu sei que normalmente conteria apenas .class mas não neste caso, pelo menos
wired00

2
Sua solução extrairá apenas arquivos .class, não o código-fonte.
Carlos Sá

Parece que o JD-GUI é uma ferramenta multiplataforma que realmente decompila o código e mostra o código-fonte para as classes em todos os pacotes. Eu tentei e poderia obter o código fonte em um segundo no MacOS. Eu tenho o Java 8 instalado. Você pode obtê-lo em jd.benow.ca Não tenho certeza se funciona para projetos grandes.
Carlos Sá

1
código-fonte necessidade que não é fornecer pela maneira que você descreveu
chiragchavda.ks

3

Faça o seguinte na sua caixa Linux onde o java funciona (se você gosta da maneira terminal de fazer as coisas)

cd ~
mkdir decompiled_code && cd decompiled_code
wget https://bitbucket.org/mstrobel/procyon/downloads/procyon-decompiler-0.5.36.jar
java -jar procyon-decompiler-0.5.36.jar /Path/to/your/jar -o .

NOTA : como @Richard comentou "isso pode ser ilegal, dependendo de você possuir os direitos autorais do jar, o país em que vive e seu objetivo de fazê-lo".


Para um arquivo de classe específica que você pode fazer java -jar pacote procyon-decompiler-0.5.36.jar / do / a / java / class.class> className.java
nitin Angadi

0

O AndroChef Java Decompiler produz um código muito bom que você pode usar diretamente em seus projetos ...


-2

As ferramentas acima extraem o frasco. Também existem outras ferramentas e comandos para extrair o jar. Mas AFAIK, você não pode obter o código java, caso o código tenha sido ofuscado.


7
A maior resposta
fnc12 08/07/19

-6

suponha que seu arquivo JAR esteja em C: \ Documents and Settings \ mmeher \ Desktop \ jar e o nome do arquivo JAR seja xx.jar e, em seguida, escreva os dois comandos abaixo no prompt de comando:

1> cd C: \ Documents and Settings \ mmeher \ Desktop \ jar

2> jar xf xx.jar


-6

- Arquivo .jar secreto em .zip (no Windows, basta alterar a extensão) - Descompacte a pasta .zip - Você obterá os arquivos .java completos


3
Como uma pequena observação sobre esse método ... É verdade que os arquivos jar são arquivos zip sofisticados. No entanto, descompactar um jar provavelmente produzirá arquivos * .class, ou seja, arquivos java "compilados". É possível "descompilar" arquivos de classe para arquivos java normais. Esta funcionalidade está incluída em muitos IDEs
Daniel Hernandez

Isso vai arquivos de classe apenas desbloqueio
Harshil
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.