2012-05-26 12 views
5

Jeśli uruchomiłem javap -c ASM.class > ASM.java, aby uzyskać kod zespołu, w jaki sposób mogę ponownie skompilować to z powrotem do kodu bajtowego JVM?Jak skompilować kod zestawu JVM do kodu bajtowego?

+1

najpierw spróbować nie używając '.java' Java montażowej, jak to jest zamieszanie. Używam '.jasm' –

+0

@ColeJohnson Dzięki. Nie wiedziałem o tym rozszerzeniu pliku. – Orcris

+2

jako programista, możesz oznaczyć swoje pliki dowolnie. Nie ma standardu. Wybrałem właśnie jaśmin, aby odróżnić go między .asm i wybrałem j, ponieważ jest to nosa, masm, itp. (??? ASeMbler) –

Odpowiedz

5

Jasmin to asembler dla bajtów Java. Jednak nie wiem, czy może poradzić sobie z wyjściem z javap.


UPDATE

Dokumentacja mówi Jasmin ten temat javap wyjściowe:

Sun ma zapewnić program javap które można wydrukować kod montaż w pliku klasy. Jednak wynik javap jest nieodpowiedni do użycia jako format asemblera. Jest przeznaczony do odczytu przez osobę, a nie do parsowania przez asembler, więc ma wiele pominięć i wad.

W związku z tym powiedziałbym, że istnieje małe prawdopodobieństwo znalezienia asemblera, który pobiera dane wyjściowe jako javap.

-2

można spróbować zrobić to przez ASM, może być wygenerować klasę lub zmodyfikować klasę w czasie wykonywania

+0

To nie odpowiada na pytanie, IMO. –

+0

ASM pozwala tylko na modyfikację kodu bajtowego java w czasie wykonywania, a nie na kodowanie i konwertowanie go na kod bajtowy, jednak nie jest możliwe wykonanie programu do odczytu zespołu i wygenerowania kodu bajtowego za pomocą ASM. – mailmindlin