Как скомпилировать код сборки JVM в байт-код?

Если бы я запустил javap -c ASM.class > ASM.java, чтобы получить ассемблерный код, как мне перекомпилировать его обратно в байт-код JVM?


person Orcris    schedule 26.05.2012    source источник
comment
сначала попробуйте не использовать .java для сборки java, так как это путаница. я использую .jasm   -  person Cole Johnson    schedule 26.05.2012
comment
@КоулДжонсон Спасибо. Я не знал об этом расширении файла.   -  person Orcris    schedule 30.05.2012
comment
как разработчик, вы можете маркировать свои файлы как хотите. Стандарта нет. Я просто выбрал jasm, чтобы отличить его от .asm, и выбрал j, потому что он похож на nasm, masm и т. д. (??? ASeMbler)   -  person Cole Johnson    schedule 30.05.2012


Ответы (2)


Jasmin — это ассемблер для байт-кодов Java. Однако я не знаю, справится ли он с выводом из javap.


ОБНОВЛЕНИЕ

В документации Jasmin говорится о выводе javap:

Sun предоставляет программу javap, которая может печатать ассемблерный код в файле класса. Однако вывод javap не подходит для использования в качестве формата ассемблера. Он предназначен для чтения человеком, а не для разбора ассемблером, поэтому имеет ряд упущений и недостатков.

Исходя из этого, я бы сказал, что мало шансов найти ассемблер, который принимает javap выходных данных в качестве входных данных.

person Stephen C    schedule 26.05.2012

вы можете попытаться сделать это с помощью ASM, это может быть генерация класса или изменение класса во время выполнения

person user1421213    schedule 29.05.2012
comment
Это не отвечает на вопрос, ИМО. - person Stephen C; 12.06.2012
comment
ASM просто позволяет вам изменять байт-код java во время выполнения, а не брать ассемблерный код и преобразовывать его в байт-код, однако вполне возможно, что можно сделать программу для чтения ассемблера и сгенерировать байт-код с помощью ASM. - person mailmindlin; 28.12.2014