2012-05-26 21 views
5

Nếu tôi chạy javap -c ASM.class > ASM.java để lấy mã lắp ráp, làm cách nào tôi biên dịch lại mã này thành mã bytecode JVM?Làm cách nào để biên dịch mã assembly JVM thành bytecode?

+1

trước tiên không sử dụng '.java' để lắp ráp java vì nhầm lẫn. tôi sử dụng '.jasm' –

+0

@ColeJohnson Cảm ơn. Tôi không biết về phần mở rộng tập tin đó. – Orcris

+2

là nhà phát triển, bạn có thể gắn nhãn cho tệp của mình bất cứ điều gì bạn muốn. Không có tiêu chuẩn. Tôi chỉ chọn jasm để phân biệt nó giữa .asm và chọn j vì nó giống như co thắt, co thắt, vv (??? ASeMbler) –

Trả lời

5

Jasmin là một trình kết hợp cho các bytecode Java. Tuy nhiên, tôi không biết liệu nó có thể đối phó với đầu ra từ javap hay không.


CẬP NHẬT

Các tài liệu Jasmin nói này về javap đầu ra:

Sun không cung cấp một chương trình javap có thể in mã lắp ráp trong một tập tin lớp. Tuy nhiên, đầu ra javap là không phù hợp để sử dụng như một định dạng của trình biên dịch. Nó được thiết kế để được đọc bởi một người, không được phân tích bởi một người lắp ráp, do đó nó có một số thiếu sót và hạn chế.

Trên cơ sở điều này, tôi muốn nói rằng có rất ít cơ hội tìm một bộ lắp ráp có đầu ra là javap làm đầu vào của nó.

-2

bạn có thể cố gắng thực hiện theo ASM, có thể tạo lớp hoặc sửa đổi lớp trong thời gian chạy

+0

Điều này không trả lời câu hỏi, IMO. –

+0

ASM chỉ cho phép bạn sửa đổi bytecode java khi chạy, không lấy mã assembly và chuyển đổi nó thành bytecode, tuy nhiên nó không phải là không khả thi mà người ta có thể làm cho một chương trình đọc assembly và tạo bytecode với ASM. – mailmindlin

Các vấn đề liên quan