IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

transformer les .jar en .class puis en .java


Sujet :

Java

  1. #1
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut transformer les .jar en .class puis en .java
    Bonsoir , tout le monde
    J'ai un prb tel que j'ai des applet.jar et je veux les transformer en.class puis en .java pour obtenir le code pr modifier au niveau du code est ce que qlq'1 peut me dire est ce que cette transformation est possible ??? si oui comment je peux la faire
    Merci d'avance

  2. #2
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut
    Tout d'abord, merci d'éviter le langage sms, je le digere très mal

    Un .jar est une archive, tout comme un .zip ou un .rar tu peux l'ouvrir et l'extraire avec winrar ou 7-zip &cie.
    Ce .jar contient généralement soit des .class, soit des .java (ou meme les deux) donc pas besoin de convertir mais juste d'extraire.
    Me demander de ronvertir un .jar en .class revient à me demander de transformer un .txt en .mp3 écoutable.... c'est pas possible, ça n'a rien à voir...
    Transformer un .class en .java est ce qui s'appelle faire de la décompilation... Ca marche pas à 100% notamment à cause (ou plutot grace ) aux obfuscators.
    Il me semble qu'il y a un outil dans le sdk pour décompilé, rien de sur, une recherche google te permettra de trouver des bonnes solutions.

    Voila voila, j'espère que j'ai répondu à tes interrogations!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Braillane Voir le message
    Me demander de ronvertir un .jar en .class revient à me demander de transformer un .txt en .mp3 écoutable.... c'est pas possible, ça n'a rien à voir...
    Transformer un .class en .java est ce qui s'appelle faire de la décompilation... Ca marche pas à 100% notamment à cause (ou plutot grace ) aux obfuscators.
    Java se décompile quand même super bien, le byte code des .class peut être facilement transformé en java compréhensible, sauf si il a été obfusqué.
    Ceci s'explique par le fait que :
    1) javac ne fait aucune optimisation de code
    2) javac n'obfusque pas le code, il change juste le nom des variables par des identifiants (mais pas le nom des méthodes si mes souvenirs sont bons).
    Et comme il a été dit pour trouver un décompiler, le SDK en possède un : javap (jamais testé), ou sinon google te renverra vers DJ Compiler et autres...

  4. #4
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    Bonjour
    Merci pour vos rèponses
    maintenant j'extrais le .jar et j'ai trouvè des .class , je vais chercher comment je peux transformer ce .class en .java car j'ai besoin de changer au niveau de code
    Mais au niveau .jar , j'ai trouvé des dossiers : IHM ,META-INF,pics.... c'est le dossier de l'application java c'est ça!!!!!!!!
    Merci à ts

  5. #5
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut commande dos pour décompiler des .class en .java
    J’ai téléchargé net.sf.jadclipse_3.3.0.jar et j’ai ajouté ce plugin au niveau des plugins d’Eclipse, je pense pour dècompiler un .class je dois taper des commandes en dos, est ce que qlq’1 peut me dire ces commandes ??
    Merci d'avance

  6. #6
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Sur le plugin Eclipse je sais pas, mais avec l'appli (jad.exe) c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jad -sjava MaClasse.class
    Si cela peut aider !

  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Mais sinon, l'intérêt du plugin en question est justement que tu n'as plus à taper une commande : il suffit d'ouvrir un .class depuis Eclipse pour que jad la décompile à la volée.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    en dehors des .class, tu trouvera dans le .jar toutes les ressources utilisées par l'applet. Attention pour la décompilation et la modification, il y a des loi là dessus, liées au droit d'auteur, tu ne peux pas faire n'importe quoi!

  9. #9
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    Merci pr les rèponses mais au niveau d'eclipse qd j'ai fait double clique sur un fichier .class voici le message d'erreur qui m'a affiché:



    Java Model Exception: Java Model Status [Operation not supported for specified element type(s):<project root> [in AppletVerionFinal]]
    at org.eclipse.jdt.internal.core.ClassFile.getBuffer(ClassFile.java:361)
    at org.eclipse.jdt.internal.core.ClassFile.getSourceRange(ClassFile.java:517)
    at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.probeInputForSource(ClassFileEditor.java:732)
    at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.doSetInput(ClassFileEditor.java:644)
    at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:2994)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
    at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:758)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
    at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:755)
    at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2451)
    at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3012)
    at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3039)
    at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:794)
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:643)
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
    at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:263)
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2721)
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2633)
    at org.eclipse.ui.internal.WorkbenchPage.access$12(WorkbenchPage.java:2625)
    at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2577)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2572)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2556)
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2547)
    at org.eclipse.ui.ide.IDE.openEditor(IDE.java:644)
    at org.eclipse.ui.ide.IDE.openEditor(IDE.java:603)
    at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:98)
    at org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.java:98)
    at org.eclipse.ui.views.navigator.OpenActionGroup.runDefaultAction(OpenActionGroup.java:125)
    at org.eclipse.ui.views.navigator.MainActionGroup.runDefaultAction(MainActionGroup.java:328)
    at org.eclipse.ui.views.navigator.ResourceNavigator.handleOpen(ResourceNavigator.java:694)
    at org.eclipse.ui.views.navigator.ResourceNavigator$6.open(ResourceNavigator.java:437)
    at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
    at org.eclipse.core.runtime.Platform.run(Platform.java:857)
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:193)
    at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818)
    at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079)
    at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1183)
    at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263)
    at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257)
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
    at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1169)

  10. #10
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut
    On peut rien faire avec ta stack trace sans le code. De plus un .class n'est pas fait pour etre ouvert sous eclipse...
    Essaye de nous expliquer vraiment ton problème, pourquoi tu veux décompiler un .class, pourquoi tu veux l'ouvrir avec eclipse etc...

    Le forum c'est bien, apprendre par soi meme c'est mieux...

  11. #11
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    Je veux dècompiler les .class en .java car je veux faire des changement au niveau du code puisque je ne peux faire ces changement au niveau des .class c'est pr cela j'ai besoin des .java
    J'ai choisi comme méthode le téléchargement de plugin d'eclipse mais ça n'a marche pas chez moi
    C'est pour cela je cherche un logiciel ou bien un outil qui me permet de faire la dècompilation, c'est urgent
    Merci d'avance

  12. #12
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Tu peux utiliser jad en ligne de commande avec un fichier jad.exe (il ne s'agit pas du plugin d'Eclipse mais d'une version indépendante), surtout si c'est ponctuel. Voici une page te donnant des infos.

  13. #13
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    Merci ça marche mnt chez moi
    Mais la solution de télécharger le plugin pour ouvrir les *.class à double clique ne m'arche pas chez moi !!!!!
    tel que j'ai telechargè le plugin :net.sf.jadclipse_3.3.0.jar
    et pour la configuration d'Eclipse j'ai fait dans Window > Preferences... > Java > JadClipse > Path to Decompiler le chemin de jad.exe
    Mais dans Window > Preferences... > Java > JadClipse > Directory for tempory Files : je ne sais pas ici je dois mettre quel chemin ????????

    Merci à ts

  14. #14
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Citation Envoyé par sonia5 Voir le message
    Merci ça marche mnt chez moi
    Mais la solution de télécharger le plugin pour ouvrir les *.class à double clique ne m'arche pas chez moi !!!!!
    tel que j'ai telechargè le plugin :net.sf.jadclipse_3.3.0.jar
    et pour la configuration d'Eclipse j'ai fait dans Window > Preferences... > Java > JadClipse > Path to Decompiler le chemin de jad.exe
    Mais dans Window > Preferences... > Java > JadClipse > Directory for tempory Files : je ne sais pas ici je dois mettre quel chemin ????????

    Merci à ts
    Le décompilaetur jad en version plugin Eclipse te permet juste de voir les sources, pas de les modifier.
    (pour les chemin des fichiers temporaires, mets n'importe quel dossier)

  15. #15
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    D'accord Merci

  16. #16
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Jad n'est plus mis à jour

    JD-GUI est pas mal du tout... je l'utilise depuis quelque mois en stand-alone !

    Emmanuel Dupuy, l'auteur de cet outil vient de sortir un plugin Eclipse...

    A suivre donc

Discussions similaires

  1. Outil transformant un diagramme de classe en code Java
    Par mme_chelaou dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 11/03/2014, 17h38
  2. Transformer Programme C en classe java par C2J
    Par tom31 dans le forum Général Java
    Réponses: 1
    Dernier message: 07/04/2008, 22h58
  3. Representer les associations entre classes en Java
    Par 0coco0 dans le forum Langage
    Réponses: 1
    Dernier message: 29/02/2008, 12h06
  4. [ECLIPSE] Supprimer les JARS de la vue "JAVA" de e
    Par gavelin dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 18/08/2005, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo