2012-05-26 21 views
5

Se eseguo javap -c ASM.class > ASM.java per ottenere il codice assembly, come dovrei ricompilarlo di nuovo nel bytecode JVM?Come si compila il codice assembly JVM in bytecode?

+1

prima cercare di non utilizzare '.java' per il montaggio del Java in quanto è la confusione. Io uso '.jasm' –

+0

@ColeJohnson Grazie. Non sapevo di quella estensione di file. – Orcris

+2

come sviluppatore, puoi etichettare i tuoi file come vuoi. Non esiste uno standard Ho appena scelto jasm per differenziarlo tra .asm e scelto j perché è come nasm, masm, ecc. (??? ASeMbler) –

risposta

5

Jasmin è un assemblatore per bytecode Java. Tuttavia, non so se possa far fronte all'output di javap.


UPDATE

La documentazione Jasmin dice questo circa javap uscita:

Sun fornisce un programma di javap che può stampare il codice assembly in un file di classe. Tuttavia, l'output di javap non è appropriato per l'uso come formato assembler. È progettato per essere letto da una persona, non per essere analizzato da un assemblatore, quindi ha una serie di omissioni e svantaggi.

Sulla base di questo, direi che ci sono poche possibilità di trovare un assemblatore che prenda l'output javap come input.

-2

si può provare a farlo da ASM, può essere generare classe o modificare la classe in fase di esecuzione

+0

Questo non risponde alla domanda, IMO. –

+0

ASM consente di modificare solo bytecode java in fase di runtime, non di prendere il codice assembly e convertirlo in bytecode, tuttavia non è impossibile che un programma possa leggere un assembly e generare il bytecode con ASM. – mailmindlin

Problemi correlati