2011-04-01 70 views
7

我需要在我的java程序中读取java的.class文件的内容,或者是否有任何方法可用来读取它们。实际上,我想从java的.class文件中检索本地变量表,行号表等但我没有得到任何方法来阅读相同的?如何读取.class文件?

回答

2

你需要一个Java decompiler或类似that

+0

不,实际上我们必须编写纯java代码。我们不必使用任何工具 – Neha 2011-04-01 20:12:36

+0

我不明白? – RoflcoptrException 2011-04-01 20:13:27

+0

基本上我的项目是使用白盒测试生成测试用例。通常我们的NetBeans或eclipse都有自己的编辑器,他们可以在其中编译代码并生成测试用例。但是我们必须读取.java文件存储在磁盘的任何地方,并生成测试用例。为此,我们实际上正在寻找如何获取符号,它们的数据类型,它的值等。我正在考虑读取.class文件,因为它包含局部变量表格,行号表等。所以我们没有使用任何工具 – Neha 2011-04-01 20:36:57

0

你可以用得到这些信息BCEL

字节码工程库的目的是给用户提供了方便的可能性来分析,创建和操纵(二进制)Java类文件(以.class结尾的文件)。类由包含给定类的所有符号信息的对象表示:特别是方法,字段和字节代码指令。

,或者您也可以使用Reflection API从类文件中获取信息

+0

ASM支持得多,使用它。 – MeBigFatGuy 2011-04-01 21:34:44

+1

反射不从类文件中获取信息,而是从类对象获得信息(类加载器完成其作业之后) – 2013-04-30 07:19:37

4

我要检索的局部变量表,行号表,等

读那些你需要ASM,BCEL或类似的字节码库。 Java的反射API并没有告诉你。