Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    194

    [JAVA] decompilo una class in java, la modifico e ricreo la class

    premesso che non conosco per niente java, ho dato uno sguardo in giro.

    _dunque ho un file *.class, che dovrei modificare.
    _usando JAD lo decompilato, il mio file *.class è diventato *.java
    _ora sto scaricando JDK dove all'interno ci dovrebbe essere JAVAC che servirebbe, credo, a compilare una classe da un file JAVA; in teoria dovrei ritornare all'inizio, cioè avendo *.java torno a *.class

    conoscete qualche altro metodo più rapido e semplice o qualche altro programma? consigli?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non esistono metodi più rapidi o semplici: per compilare serve il sorgente (NomeClasse.java) ed è solo sul sorgente che puoi lavorare per modificare la classe.
    Quella è l'unica via!

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Non esistono metodi più rapidi o semplici: per compilare serve il sorgente (NomeClasse.java) ed è solo sul sorgente che puoi lavorare per modificare la classe.
    Quella è l'unica via!
    Concordo!!!
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    194
    io ho solo un file *.class
    per modificarlo ho scaricato il JAD
    che prima me l,o converte in *.java
    poi me lo apre e lo modifico tranquillamente.

    il problema sta nel ricreare il *.class
    allora mi sono scaricato il JDK che contiene il JAVAC
    che in teoria converte il file che ho ora, cioè il *.java in *.class (che è quello che mi serve)

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Esatto. Il Java Decompiler ti decomplia il bytecode (il .class), permettendoti di riottenere il sorgente ( .java ) e da qui procedi con le modifiche.

    Avendo, poi, il JDK puoi tornare a ricompilare il programma e riottenere i .class necessari alla sua esecuzione.

    Per compilare:
    codice:
    javac NomeClasse.java
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    194
    mi da questo erroe:

    codice:
    tree.java:195: the metod java.awt.Dimension getBounds<> eclared in class tree cannot override the metod of the same signature declared in class java.awt.Component. they must have the same return type. public dimension getbounds<>
    note: tree.java uses overrides a deprecated API. recompile with "-deprecation" for details.
    1 error. 1 warning
    cosa devo fare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    194
    up

  8. #8
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Dall'errore mi sa che o hai chiamato un metodo nello stesso modo di come è chiamato nella classe component e quindi la VM si inceppa perchè il metodo non può esssere sovrascritto oppure hai tentato di modifcare il metodo per fargli fare quello che tu volevo; in quest'ultimo caso devi trovare una strada alternativa ai tuoi scopi.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  9. #9
    Hai sovrascritto un metodo di una superclasse con la stessa firma (nome metodo + parametri passati) cambiando i parametri di ritorno. Questo non va bene... o cambi i parametri di ritorno in modo che siano uguali a quelli della superclasse o cambi il nome del metodo.
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.