在网上搜索时,很容易找到打印出Java字节码的方法:
http://www.ibm.com/developerworks/ibm/library/it-haggar_bytecode/
我找不到的是Java字节码的标准表示是否为字符串,以及是否有工具将Java字节码的字符串表示编译为二进制字节码。
在.NET中,等效的工具是ilasm.exe。 Java是否有这样的东西,它是标准的吗?
答案 0 :(得分:3)
有一些工具可以做到这一点,但它们不是标准的一部分。您有两种选择:
答案 1 :(得分:1)
答案 2 :(得分:1)
过去我曾使用Jasmin。
答案 3 :(得分:1)
我找不到的是,如果有一个标准表示Java字节码作为字符串......
没有一个。
但是,有第三方工具可以通过各种方式创建类文件。像ASM或Jasmin这样的字节码组合是一种方法,另一种方法是使用类似BCEL的方式以编程方式生成字节码。
(标准javap
实用程序可以被告知输出格式化的字节码,但格式没有标准化,并且没有标准实用程序向另一个方向发送。)
答案 4 :(得分:1)
如果您只是想查看.class
文件的字节代码,javap
就是您的朋友。
没有真正的“标准”方法将Java字节码转换为汇编 - 因为这通常仅在运行时由JIT完成 - 但gcj
在这些方面做了一些事情。