如何编译Java字节码字符串?

时间:2012-03-26 12:08:45

标签: java bytecode

在网上搜索时,很容易找到打印出Java字节码的方法:

http://www.ibm.com/developerworks/ibm/library/it-haggar_bytecode/

我找不到的是Java字节码的标准表示是否为字符串,以及是否有工具将Java字节码的字符串表示编译为二进制字节码。

在.NET中,等效的工具是ilasm.exe。 Java是否有这样的东西,它是标准的吗?

5 个答案:

答案 0 :(得分:3)

有一些工具可以做到这一点,但它们不是标准的一部分。您有两种选择:

  • 您可以使用Java(tm) Bytecode AssemblerJasmin。他们将文本文件作为输入并将其编译为类文件。
  • 您可以使用像ASM这样的库来使用Java代码构建字节码。这是读取现有字节码并希望对其进行转换时的常用方法。

答案 1 :(得分:1)

请查看示例ASMJasmin;那些是Java字节码汇编程序。

JDK不包含字节码汇编程序作为其标准工具之一。

答案 2 :(得分:1)

过去我曾使用Jasmin

答案 3 :(得分:1)

  

我找不到的是,如果有一个标准表示Java字节码作为字符串......

没有一个。

但是,有第三方工具可以通过各种方式创建类文件。像ASM或Jasmin这样的字节码组合是一种方法,另一种方法是使用类似BCEL的方式以编程方式生成字节码。

(标准javap实用程序可以被告知输出格式化的字节码,但格式没有标准化,并且没有标准实用程序向另一个方向发送。)

答案 4 :(得分:1)

如果您只是想查看.class文件的字节代码,javap就是您的朋友。

没有真正的“标准”方法将Java字节码转换为汇编 - 因为这通常仅在运行时由JIT完成 - 但gcj在这些方面做了一些事情。