2010-08-10 7 views

Répondre

3

À moins que vous n'ayez aussi le code source (dans le JAR, ou séparément), le mieux que vous puissiez faire est d'utiliser un décompilateur Java. Selon la façon dont le code a été compilé en premier lieu, cela pourrait générer un code source qui est significativement différent de ce que l'auteur original a écrit (bien que fonctionnellement identique, bien sûr). Par exemple, certaines options d'optimisation peuvent entraîner la réécriture de boucles et la suppression de variables locales. Certaines options de débogage peuvent entraîner la suppression des noms des variables locales, le décompilateur devra donc leur inventer des noms (sans signification), etc.

Je voudrais également savoir si ce que vous voulez faire est légal. Généralement, si un projet est autorisé pour modification, son code source sera disponible et vous n'aurez pas besoin de faire ce que vous proposez.

+0

J'ai acheté une licence mais le support a été minime et manque de documentation. C'est le moins que je puisse faire. – KJW

+1

Cela ne rend pas plus légal – dty

+2

, il est également interdit d'arnaquer les clients en fournissant un produit demi-assed et aller awol. – KJW

0

J'ai utilisé le décompilateur Cavaj et cela a plutôt bien fonctionné pour moi. Vous pouvez simplement ouvrir le fichier jar avec n'importe quel programme de décompression comme 7zip, les fichiers .jar sont vraiment juste des fichiers zip. Ensuite, tout ce que vous devez faire est de nourrir les fichiers .class à Cavaj. Les fichiers .class sont organisés par paquet, donc com.foo.Bar sera com/foo/Bar.class à l'intérieur du .jar.

Comme l'a dit Danny, la légalité pourrait être discutable selon la situation. Je l'ai seulement utilisé pour regarder la source d'une ancienne version d'une application que j'avais écrite mais dont je n'avais plus la source.

+0

Java est livré avec un décompilateur gratuit. javap – dty

+0

Je viens de jeter un coup d'œil sur javap et il semble qu'il ne sort que le code compilé que la VM exécute. Je ne sais pas à quoi ressemble le code Java compilé, mais cela me rappelle Assembly ou BASIC. Cavaj tout en étant extrêmement vieux, le convertit en Java pur. – jonescb

+0

Oh ouais. Désolé mon mauvais. Ensuite, il y a des tas de freeware là-bas. Jad est quelque chose avec lequel j'ai déjà eu du succès. Mon souci avec le produit Cavaj est qu'il prétend seulement fonctionner sur Windows et prétend qu'il n'a pas besoin de Java installé. Cela implique que c'est un programme natif, qui pourrait être OK ou non. – dty