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

Eclipse Java Discussion :

Modification d'un fichier .class


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut Modification d'un fichier .class
    Bonjour,
    • Je dispose d'un d'un jar (initial.jar) contenant les sources java
    • Je dispose d'un jar (encours.jar), sans les sources, qui correspond à initial.jar avec juste quelques modifications sur certaines classes
    • Je dois faire une petite modification supplémentaire sur une autre classe de ce jar.


    J'aimerais, juste pour cette classe, importer dans encours.jar le fichier java source en allant le chercher dans initial.jar afin de pouvoir faire ma modif dans encours.jar.

    J'ai donc fait une association externe à initial.jar mais, dans encours.jar, la classe que je veux modifier est toujours en .class et je ne peux pas la modifier.

    Merci pour toute aide.

    Philippe

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu ne peux pas modifier directement un .class : il faut modifier le source (le .java) correspondant et le recompiler.

    1. tu décompresses le jar de sources (avec un soft de dézippage quelconque, ou avec la commande jar xf initial.jar)
    2. tu montes un projet avec ces .java comme sources, tu fais tes modifications
    3. si j'ai bien compris tu as des classes dans encours.jar dont tu n'as pas les sources. Et tu cherches bien à modifier des classes qui n'ont pas été modifiées dans encours.jar par rapport à initial.jar
      1. Solution 1 : utiliser un logiciel de décompilation, pour pouvoir récupérer les .java des .class différents dans encours.jar et remplacer ceux qui correspondent dans ton dossier src, ce qui te permet de refaire le jar directement

      1. Solution 2 : reprendre les .class de encours.jar (décompresser le jar de la même façon que pour initial.jar) dans un dossier à part, remplacer les .class des .java modifiés, refaire le jar à partir de ce dossier, par ligne de commande (tu ne peux pas utiliser Eclipse).
    4. Bémol : encours.jar est-il signé ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut
    Merci.
    Lorsque j'explore "encours.jar" avec Ecplise (sous windows), je vois tout : les repertoires, les fichiers : si je double clique sur le .class que je veut modifier, il s'affiche parfaitement bien et il correspond exactement au fichier java que j'ai dans "initial.jar" : et j'ai juste besoin de modifier une valeur : mais le fichier est en lecture seule.
    Philippe

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Si tu vois le source en double-cliquant sur le .class, c'est que tu as un plug-in de décompilation, ou alors que tu as fait le lien avec le jar de sources, mais ça ne veut pas dire que tu peux modifier le source de cette façon. On ne modifie pas directement un .class : c'est le résultat de la compilation d'un .java.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut
    Je vais tenter les deux solutions

    1.Solution 1 : utiliser un logiciel de décompilation, pour pouvoir récupérer les .java des .class différents dans encours.jar et remplacer ceux qui correspondent dans ton dossier src, ce qui te permet de refaire le jar directement
    J'ai pu décompiler encours.jar en encours.jar.src et j'ai modifié la valeur souhaitée dans un des fichiers java
    Comment refaire le jar avec eclipse ?


    1.Solution 2 : reprendre les .class de encours.jar (décompresser le jar de la même façon que pour initial.jar) dans un dossier à part, remplacer les .class des .java modifiés, refaire le jar à partir de ce dossier, par ligne de commande (tu ne peux pas utiliser Eclipse).
    Je suis sous Windows7

    Le ligne de commande pour faire un .class à partir du .java modifié, c'est javac ?
    Quelle est ensuite la ligne de commande pour refaire le jar ?

    Merci

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Pgs Voir le message
    Le ligne de commande pour faire un .class à partir du .java modifié, c'est javac ?
    Oui, c'est javac
    Citation Envoyé par Pgs Voir le message

    Quelle est ensuite la ligne de commande pour refaire le jar ?
    La commande est jar.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/10/2011, 21h54
  2. Modification simple d'un fichier CLASS
    Par lcfseth dans le forum Général Java
    Réponses: 4
    Dernier message: 13/12/2010, 17h26
  3. [DOM] Classe pour modification d'un fichier XML
    Par Dookie dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/10/2007, 14h59
  4. [JSP][Tomcat] COmment choisir la place des fichiers .class?
    Par mathieu dans le forum Tomcat et TomEE
    Réponses: 16
    Dernier message: 03/03/2004, 09h24
  5. [langage] Date de modification d'un fichier
    Par Cyspak dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2003, 15h49

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