Por que não consigo acessar o código fonte da minha biblioteca?

Olá. Criei este tópico para tentar desvendar algo muito estranho que aconteceu recentemente. Eu fiz a muito tempo atrás uma API, ela tinha várias classes, e uma delas bem grande, passei muito tempo fazendo. Usei ela em inúmeros projetos, e tenho o .jar guardado, mas não tenho o código fonte. E hoje, fui procurar seu código fonte pra refaze-la. Porém, utilizando o Java Decompiler, eu recebo o a mensagem de erro interno. Até aí tudo bem, os dados podem estar corrompidos. Mas o que me intriga é que eu tenho um projeto com ela, e eu executo, e ela funciona! Como se o código fonte estivesse ali mas eu não posso ler.
Alguém tem alguma ideia do que pode ter acontecido?

O arquivo jar é o projeto compilado, sendo as classes .class, ou seja estão em byte code. Você teria que descompilar para ler em linguagem java. Sugiro que use o jade. Infelizmente não vai ser possivel você recuperar 100% o codigo fonte.

1 curtida

Muito obrigado por me indicar a ferramenta. Mas uma coisa me intriga. Você disse que não é possível recuperar todo o código fonte certo? Mas então como que o Java Decompiler funciona perfeitamente em algumas aplicações?

Sobre a sua recomendação. Está falando deste programa: http://www.javadecompilers.com/jad ?

Estava com o mesmo problema que você uns anos atrás,
ai usei esse plugin para eclipse :

https://marketplace.eclipse.org/content/eclipse-class-decompiler

Me desculpe pela demora para responder, é que eu fiquei sem PC, e consequentemente sem Eclipse, daí achei melhor não responder. Bem, eu acabei de instalar o plugin, mas como eu decompilo? Eu tentei abrir um .class no Eclipse depois, e ele parou de responder.

Testei aqui na minha e não travou.

Em todo caso o plugin funciona.

Tem duas maneira para abrir o .class

1 - Colocado o seu jar no BuildPath , como na imagem :

depois acessar o .class no package :

2 - outra forma é criar um projeto novo e importar o seu jar para esse projeto .

1 curtida

Muito obrigado, consegui acessar todo o código fonte sem problemas. Você me ajudou muito. Evitou que eu rescrevesse mais de 1000 linhas de código, muito obrigado.

1 curtida

Que bom meu amigo.
{ },s.