如何生成字节码并保存到.class文件?

Jus*_*s12 8 java reflection bytecode

我有以下奇怪的要求.

我给了:

  1. 一些方法名称的列表.
  2. 上述方法的名称和参数类型.
  3. 上述方法的功能.具体如下:对于每个参数,该方法将其转换为字符串使用toString并获取字符串数组.对于该数组,该方法应用函数foo.该函数foo作为输入一个String []类型和输出String.方法返回返回的内容foo. foo代码在Java对象中给出,并作为黑盒访问.

1.和2.中的信息可以是文本或XML文件.为此,我们可以认为它以我们选择的任何方式在Java对象中可用.

任务是创建一个.class实现这些方法的文件(即字节码),并且可以在JVM上运行.

我认为这个汇编程序库是一种方法.谁能建议一个更简单的方法?

[编辑:]我可以想到另一种方式:首先生成.java文件,然后编译它以获取.class文件.

[上下文:]我必须为数百种方法执行此操作.我想要快捷方式,这样我就可以自动完成工作而不是手动编写代码.

Bar*_*end 9

您可以使用Java语法生成所需的程序代码,并使用编译器将其转换为类文件.可以javac在运行时实例化并传递一个字节数组而不是源文件的位置.对于其他程序员来说,这可能是最容易维护的.

如果要直接生成字节代码,asm是最常用的库.


cuh*_*cuh 6

以下是开源ByteCode库的列表:http://java-source.net/open-source/bytecode-libraries

看看Javassist.