问题标签 [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 回答
416 浏览

java - 所有运行时变量访问的java跟踪

我需要记录对任何变量或对象的所有运行时访问我目前的方向是用修改后的字节码标记类文件性能目前不是问题

BCEL 看起来不错,可以为字节码中的每个相关操作码添加一些跟踪指令

但是,我还想从源文件中添加一些语义信息,例如这个变量是一个 for-loop 计数器这将需要一些 AST / 解析树操作。

那么 ASM / JavaAssist 是更好的选择吗???

记录变量使用是关键要求——所以字节码看起来是处理这个问题的正确级别。但最终我将不得不访问源解析树以获取更多语义信息

有什么想法吗 ?

ps 这将是一个长期的大型项目

0 投票
3 回答
955 浏览

java - 我可以使用 BCEL 将注释添加到我的 java 类吗?

1.我可以用BCEL给我现有的java类添加注释吗?2.我可以用BCEL将注释添加到我新手动生成的java类中吗?

0 投票
1 回答
267 浏览

java - JAVA BCEL NEWARRAY getType 基本类型

我如何在 BCEL 检查这个..

说java中的字节码是

我已经为访客完成了

但我还必须检查 newarray 是否是int[]

我如何在 BCEL 中检查这个?

我试过这个

但是你可以看到上面的 ^ 不会起作用,因为它永远不会int......但是int[]

Type.INT只是int..而不是int[]..

我如何表示类型int[]

我正在阅读 BCEL 源代码,NEWARRAY.getType() 返回这个..

如您所见,它返回一个Type类,所以..查看 http://commons.apache.org/bcel/apidocs/org/apache/bcel/generic/Type.html

http://commons.apache.org/bcel/apidocs/org/apache/bcel/generic/ArrayType.html

TypeARRAY没有任何's int[]

0 投票
1 回答
477 浏览

java - 如何指定 ClassParser 构造函数参数?

我正在尝试使用 ClassParser 来获取方法参数名称,ClassParser 构造函数将类名称作为参数,例如:

我正在尝试将参数设置为 String 类我尝试使用“String.class”但它不起作用。我也使用过“java.lang.String.class”,但它不起作用。最后,我尝试了 this.getClass().getResource("java/lang/String").toString() 但这也不起作用。我该如何解决这个问题?

谢谢

0 投票
1 回答
379 浏览

java - 如何使用 Apache BCEL 获取类构造函数参数?

我可以使用 BCEL 获取方法,但是否可以使用同一个库获取类的构造函数?

0 投票
3 回答
3597 浏览

java - 在 Java Android 中动态编辑/创建类

我正在寻找一种在运行时动态定义类并在 Android 中实例化它们的方法。据我了解,这已经在 Android 中完成,我只需要一些帮助来弄清楚。

我可以在 Javascript 和 PHP 中得到类似的结果。我知道它可以在 Java 中使用 ASM、BCEL 或 CGlib 之类的东西来完成。但是,我对其中任何一个都不够了解,无法了解它们是否可以在 Android 上运行。或者,它们会起作用,有什么影响?

如果假设这三个都可以在 Android 中运行,那么有人可以指出我从哪里开始理解使用哪个以及如何使用它的正确方向吗?

我没有做过太多的 Java 编程,而且我最近才在 Android 中使用它,所以,我很感激我能得到的所有帮助/纠正。话虽如此,如果您的回答不简单,我将不胜感激:不要这样做。我正在寻找如何具体做到这一点,而不是如何正确地做到这一点。至少,直到我的应用程序崩溃。:)

我相信这已经在 Android 中发生在以下情况下:(不是 100% 肯定)

从 JSON 创建一个对象。AIDL

0 投票
3 回答
643 浏览

java - 如何从 Java 字节码中判断一个局部变量是否是“最终的”?(与BCEL有关)

诸如局部变量是否“最终”存储在 Java 字节码中的信息在哪里?我知道对于字段(全局变量)和方法,这些可以在访问标志位中找到,但似乎无法在局部变量表中找到等效项。

我对这个问题很感兴趣,因为我正在使用 BCEL 检查局部变量是否为最终变量,并在 AccessFlags 类中找到了字段、方法和类的等价物。

提前致谢。

0 投票
0 回答
167 浏览

java - BCEL - 调试返回语句

我想修改现有的 *.class 文件。当方法完成并返回其值时,我想显示调试消息“得到结果:%return value%”。如何使用 BCEL 实现这一目标?

0 投票
1 回答
318 浏览

java - 看不到 BCEL 所做的更改

我正在尝试使用 BCEL 更改我的 Test 类的主要方法。我只是想添加System.out.println("This is added by BCEL at runtime") 到 main() 的开头。虽然我没有收到异常并且 InstructionList 显示了我的命令,但我的字符串没有打印并且javap -c显示未修改的版本。这是我的代码:

0 投票
1 回答
323 浏览

java - Java 委托调用 BCEL/ASM

亲爱的 SOF 成员们您好!

我在寻找什么? 我一直在网上搜索和搜索如何在类上实现/注入接口(当然已经编译)并通过类上的接口添加所需的方法。我也一直在尝试尽可能多地学习 BCEL 和 ASM,但我的资源很少(即使是我亲爱的朋友 Google),所以我希望我能在这里找到帮助!我不希望你用勺子喂我或任何东西,但我需要一些指导!:) 我知道 ASM 网站上有那本很棒的书,还有很多关于它们的教程,但我就是想不通我怎么可能像我之前所说的那样添加它的接口/方法。 我尝试了什么?我在这里 找到了这个链接但它并没有像我预期的那样工作..我确切地知道我想做什么,但我不知道我怎样才能实现它..这里的例子!

继承人该方法的实现:

亲爱的 SOF 成员,这将如何解决?