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 :

Modifier un fichier .class


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut Modifier un fichier .class
    Bonjour,
    Je suis actuellement en Stage (2eme année DUT R&T) chez un opérateur téléphonique local.

    Je dois modifier un Serveur vocal interactif (SVI) existant
    Vous savez ces fameuses messageries comme par exemple : "pour accéder au menu principal appuyer sur la touche # , si on appuie sur aucune touche le message se répète au bout de 10 secondes...etc) .

    Le principe est simple, j'ai un fichier nommé SVI.class sur un serveur qui gère donc le déroulement des actions... en java biensur

    on m'a demandé de modifier ce SVI.

    j'ai donc télécharger Cavaj Java Decompiler afin de récupérer le code java du fichier SVI.class

    le problème arrive, je vois bien le code je sais ce que je dois modifier (les lignes de code) mais comment recompiler ensuite le fichier pour avoir un nouveau SVI.class modifier et opérationnel?

    car dans cavaj je peux juste éditer le code mais pas le modifier ...

    je connais juste les bases en java et je rame beaucoup en ce moment si quelqu'un a une idée pour mon problème? merci.

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    il faut que tu enregistres le code dans un fichier nommé <le_nom_de_ta_classe>.java, donc ici "SVI.java".

    Tu modifies ensuite ce fichier, puis tu fais enfin
    ce qui te regénérera un .class tout propre :grin:

    (je suppose que le JDK est installé et configuré sur ton ordinateur)
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    oui le JDK est installé donc si j'ai bien compris je renomme le fichier en SVI.java et je tape dans une cmd javac SVI.java

    mais il va le trouver tout seul le fichier ou il faut le mettre dans un répertoire spécifique?

  4. #4
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    NON!!

    Tu utilises ton décompilateur...

    Et tu copies-colles le code que te donne le décompilateur dans SVI.java que tu modifies ensuite...

    N'essaie pas d'ouvrir un .class avec le bloc-notes, tu vas pas comprendre grand chose dedans (c'est un format binaire )
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    oui j'avais remarqué que le bloc note ne fonctionne pas.
    J'ai netbeans 6.8 aussi, je peux créer un projet java et copier-coller le code décompilé par cavaj dans un SVI.java et ensuite utilisé la commande javac SVI.java pour le recup en .class?

  6. #6
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,
    tu peux utiliser netBeans si tu veux, tant que t'as un SVI.java ^^

    PS: il ne doit pas y avoir de numéros de lignes dans ce que tu copies-colles (sinon la compilation échouerait...)
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    okok merci pour tout je testerais demain au taff ^^ en espèrent que tous fonctionne bien

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Bon je suis de retour!
    Alors j'arrive bien à décompiler mon fichier SVI.class
    je peux voir le code java qu'il contient.
    Je le modifie puis au moment de le recompiler avec la commande javac une erreur arrive :
    SVI.java :309: not a statement
    exception;

    Le problème c'est que je n'ai réalisé qu'une toute petite modification et je n'ai pas touché à cette ligne 309!

    J'ai testé la chose suivante :
    J'ai décompilé le SVI.class qui fonctionne actuellement, ensuite j'ai copié/collé l'intégralité de son code dans SVI.java
    et lorsque je recompile SVI.java (donc j'ai rien touché au code) j'ai toujours cette erreur!!

    Je ne comprends pas trop la !
    De plus quand je copie/colle l'intégralité du code d'origine dans netbeans j'ai plein de "rouge" et de code souligné!

    J'ai déjà fais un peu de java mais avec des choses simples là je comprends plus rien et surtout pourquoi si je recompile un .class décompilé à l'identique il y a des erreurs.....

    c'est vraiment la merde de reprendre un truc en java qu'on a pas écrit sois-même.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pourquoi décompiler plutot que de partir du code source qui avait servis à l'époque à créer ce .class? As-tu légalement les droits, en termes de licences, pour procéder à cette décompilation? Si ce .class appartient à la société vous ayant vendu le central téléphonique, il y a peu de chances. De même si vous avez payé une société tierce pour faire votre configuration du central à l'époque, vous n'avez vraisemblablement pas le droit de décompiler son code ou de le modifier.

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    merci de ta réponse.

    Je suis en stage depuis hier, et le programme a été écrit par une société externe qui fait que de la programmation.
    Je ne dispose donc que du SVI.class et rien d'autre pas de code source etc....
    mon sujet consiste justement à le modifier donc si tu me dis que je ne peux pas je suis mal...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    a moins d'avoir les licences ad-hoc sur ce fichier, c'est illégal. Donc la première chose à faire est de contacter cette société pour obtenir les source et les licences pour les modifier. Ton autre alternative est de prendre la doc du central téléphonique et de réécrire entièrement le programme qu'a fourni cette société externe. Dans les autre cas, ce sera légalement associé à du piratage.

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Je viens d'en parler au patron il vient de demander le code source .java , j'attends donc de voire si je peux l'avoir pour travailler dessus

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    surtout que si c'est un stage à l'université que tu devra défendre, t'aura du mal à faire une défense sur "j'ai basé mon stage sur la réalisation de travaux illégaux, j'ai violé une dixaine de lois sur la propriété intellectuelle au passage"

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    c'est exactement ça j'ai pas envie que pendant ma soutenance on me demande si j'ai rien fais d'illégal!

  15. #15
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Tiens, je pensais que réécrire entièrement un programme à partir de ses spécifications, était protégé par le droit à l'interopérabilité. Ce n'est pas le cas ?
    Où est le problème, utilisation de marque déposée ? Non-respect des engagements qui accompagnaient certainement la livraison des spécifications en question ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    thelvin: décompiler, modifier, recompiler n'est pas une réécriture complète. Bien sur il peut réécrire entièrement le logiciel du central à partir des specs, mais ca lui prendrait plus de temps que de faire une modif, d'ou l'intéret d'obtenir les droits de faire la modif

  17. #17
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ah, oui. Je t'avais mal lu, pardon.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. modifier fichier .class
    Par ptiloup52 dans le forum Langage
    Réponses: 2
    Dernier message: 24/09/2007, 13h16
  2. Modifier le template de création d'un fichier .class.php
    Par Sebastien13 dans le forum Eclipse PHP
    Réponses: 0
    Dernier message: 25/07/2007, 12h08
  3. [jar] Comment modifier un fichier jar
    Par newfsch dans le forum JBuilder
    Réponses: 5
    Dernier message: 18/07/2004, 14h25
  4. [LG]modifier un fichier
    Par fofovi72 dans le forum Langage
    Réponses: 3
    Dernier message: 15/04/2004, 21h30
  5. [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

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