问题标签 [bcel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
810 浏览

java - java - 如何在方法中检索任何内容

据我所知,java 无法检索方法内部的任何内容。所以我在 javac 中使用选项 -g 或 -g:vars。

例如:

所以,我使用 BCEL 来检索局部变量。

但是如果变量没有像String b. 此外,我想跟踪构造函数调用,如或new Thread()以及new File()调用静态方法,并在内部初始化,以及内部。所以我想在输出中看到, , ,和.JFileChoosernew FileJOptionPaneThreadString bJOptionPaneImageIOFile

我应该怎么做才能使它们打印在我的程序中?

0 投票
1 回答
243 浏览

java - java - 如何消除原始类型并获得未使用的局部变量

我有一个简单的示例代码:

基本上我必须使用 BCEL 来访问字节码并达到我的目标。所以,我尝试创建简单的代码:

结果 :

如何消除像aasintbooas这样检索到的原始类型boolean,以及如何检索未使用的局部变量 like String b

-谢谢-

0 投票
1 回答
104 浏览

java - 使用 BCEL 的 Java 类修改顺序

java库(在我的例子中是bcel)什么时候修改其他代码?

这会在类加载器的引导进程加载相关类之前或之后发生吗?

0 投票
1 回答
260 浏览

bytecode - Java 字节码操作库

我开始从事一个项目,其中一项任务是我需要分析源代码以收集有关类及其方法的信息。更具体地说,对于每个方法,我需要知道它在整个方法体中使用了哪些内部属性和外部对象(引用)。

我与我的主管讨论过,他们认为字节码操作库是可行的方法。我已经看过 BCEL、ASM 和 Javassist,但我不确定我需要使用哪一个。它们是否都提供对方法主体的访问,我可以在其中查看所有说明并获取我需要的信息?

任何建议将不胜感激。谢谢!

0 投票
2 回答
543 浏览

java - 如何从普通类(java.lang.class )对象中获取 javaclass(org.apache.bcel.classfile.JavaClass)

我有一个 .class 文件,可以将类加载到类对象(`java lang`)。我需要将类对象转换为 BCEL 中间 Java 类 ( org.apache.bcel.classfile.JavaClass) 对象。我该怎么做呢?

0 投票
1 回答
326 浏览

java - 在创建同一个类的实例时获取一个类的noClassDefFoundError。为什么会这样?

我正在尝试创建一个 java .class 文件的实例(java 代码的字节码)。但是当我这样做时,我收到如下错误:-

我正在尝试创建 SamplePro 的一个实例。我已将 SamplePro 的 .class 文件附加到我试图在其中创建其实例的项目的类库中。

0 投票
0 回答
148 浏览

java - Java/BCEL 堆栈高度不一致

我正在处理我的作业,我应该在调用 getfield 操作时使用 BCEL 修改类文件以打印某些信息。
这包括在引用字段的值大于 30 时打印字符串。
我遇到的问题是创建 if 条件。
目前我所拥有的是

第一行复制了 getfield 操作访问的值。
问题是对 IFGT() 的调用。执行后我得到

我已经尝试打印 ISUB 结果,它与预期的一样,用 POP 替换 IFGT 可以使程序正确执行,这让我相信最后一行是问题所在。
生成的字节码

我试过用谷歌搜索答案,但不幸的是我什么也没找到。

0 投票
0 回答
189 浏览

java - BCEL中IFEQ和RETURN插入指令的语法是什么?

给定以下方法:

我想添加一个 if 指令,returns true仅当名称等于 bcel 时,即:

我知道我应该使用IFEQ,IRETURNICONST_0.. 但我不知道确切的语法。

这是我试图完成的方法的一部分:

请帮忙。

附加信息:

第一个代码的字节码:

第二个代码的 BYTECODE:

0 投票
1 回答
100 浏览

bcel - 从使用另一个 java 类 (BCEL) 的 java 类生成代码

我正在尝试使用 ByteCode Engineering Library (by Apache) 从另一个类生成(和修改)输出类的代码。

所以我试图从 ClassName 为每个方法调用 printSomething。问题是我不知道如何将字符串参数实际传递给方法 printSomething

0 投票
1 回答
169 浏览

java - BCel即时修补方法不起作用

我正在尝试使用 BCEL 将回调插入到 Java 方法中,但从未调用过回调。程序运行就好像它根本没有检测到一样。

我所做的精简版:

打印出来的只有:

我所期待的是:

我究竟做错了什么?