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

java - 在java中使用BCEL强制代理

有什么方法可以代替像

使用 BCEL,因为我不知道如何。我知道这将涉及更改 InstructionList,但我不知道如何扫描它,也不知道要查找哪些操作码。

0 投票
1 回答
1272 浏览

java - 如何确定 InvokeInstruction (BCEL) 调用的方法?

我正在尝试确定 BCEL 库中给定 InvokeInstruction 的被调用方的 MethodGen。问题是我不知道如何使用 InvokeInstruction 来访问它试图调用的 MethodGen。

如果我有一个程序的主要方法的 BCEL MethodGen 对象,我可以浏览指令列表并找到那些是 InvokeInstructions 的:

BCEL 的一些文档很棒,而其他部分则有些欠缺。有关如何将 InvokeInstruction 链接到被调用方法的 MethodGen 的任何建议?

如果它简化了事情,我现在可以假设该程序没有任何多态性。尽管在某些时候我将不得不(保守地)处理它。


澄清:我意识到这样做没有直接的途径(例如invoke.getCalledMethodGen()),但我想知道是否有某种方法可以从调用指令(例如方法的 FQN 或等效项)中获得足够的不同信息,我可以链接它回到被调用的方法。

0 投票
2 回答
503 浏览

generics - How can I get the generic information of class using BCEL?

I would like to get the generic information (Counter class) of my CounterPersistence class using BCEL 6.0-SNAPSHOT. The signature is like this:

I'm using the following code to read the bytecode

But I'm failing to write a code that parse the signature and allow me to get the type Counter. Thoughts?

0 投票
4 回答
3250 浏览

java - 编译后从字节码中删除注释

我们正在使用一个包含带有 JAXB 注释的 bean 的库。我们使用这些类的方式不依赖于 JAXB。换句话说,我们不需要 JAXB,也不依赖注解。

但是,由于注释存在,它们最终会被处理注释的其他类引用。这需要我在我们的应用程序中捆绑 JAXB,这是不允许的,因为 JAXB 在javax.*包中(Android 不允许在您的应用程序中包含“核心库”)。

因此,考虑到这一点,我正在寻找一种从编译的字节码中删除注释的方法。我知道有用于操作字节码的实用程序,但这对我来说很新。我该如何开始?

0 投票
2 回答
2650 浏览

java - Java找出.class有什么导入

有没有办法找出一个类有什么进口?

这个问题中: Jon Skeet 说你不能使用反射来做到这一点,但是

如果您想查找编译后的代码中使用的所有类型,那就是另一回事了。您可能希望将 BCEL 视为一种分析字节码的方法。

这就是我想知道该怎么做。

0 投票
2 回答
856 浏览

java - C 语言中用于 Java 的 BCI 库

我正在寻找用于 C 或 C++ 中的 Java 的 BCI(字节码检测)库,以在JVMTI 代理中使用。

最好的情况是纯 C语言中的ASMBCEL 。

到目前为止,我发现的最接近的东西只是java_crw_demoKelly O'Hair 几年前编写的一个演示,此后一直用于 Sun 的/Oracle 的教程中。

你知道别的吗?

一些基本原理:我正在构建一个检测工具来添加一个 getter 方法java.lang.Object并在Object. 由于这个原因,我不能使用 Java 代理。此外,出于复杂性和速度的原因,我想避免生成辅助 JVM 来执行检测。

0 投票
2 回答
2183 浏览

java - 如何以编程方式创建java文件

我正在创建一个实用程序类,它编写.java Files充当转换器 - 生成器。

这个 util-class 将生成 AConverter.java'(参考下面的示例)

我想知道如何编写 util-class。
我用谷歌搜索,发现使用 apache bcel 的建议。但我找不到一个例子来编写.java Filefrom aString并让它在我的程序中工作。



期望是...

上面的 AConverter 类将由新的 Util 类生成。

0 投票
1 回答
1740 浏览

java - 向 Java 类添加字段

研究了在运行时使用 CGLib、ASM、BCEL(方面)和 Javassist 向类添加字段....

只是为了让我直截了当,看起来这些字节码操纵器不会更新实际的类,而是允许用户只转储修改(如使用 CGLib 和 writeFile 方法)。希望我能找到一个解决方案,(a)加载类(而不是使用 BCEL 执行 InputStream)和(b)更新类。

也许这很正常?人们通常会创建代理并传递代理吗?

我想要做的是在将对象传递给查找具有特定注释的字段(而不是属性)的框架之前添加一个字段(注意:不是通过 get/set 方法的属性)。所以“客户”正在创建我想要注入额外字段的目标类。使用 AOP 拦截对我想要操作这些对象的服务层的调用。

0 投票
0 回答
318 浏览

java - 使用类加载器时如何加载资源?

我正在使用 JarFile 和 JarURLConnection 从 jar 文件中加载文件。然后我学习这些课程,并通过 BCEL(字节码工程库,apache 库)加载它们。我不能直接使用类加载器,因为我用 BCEL 稍微修改了一些类。我需要将类按它们的字节加载到我的 bcel 加载器中。但是,我正在加载的类之一引用了资源。这个资源在 jar 里面,所以我可以得到这个文件(当迭代 JarFile 中的条目时,我忽略了常规文件,并取类文件以便稍后加载)。但是仅仅拥有该文件对我没有任何好处,因为该类将其作为资源加载。有什么方法可以从 jar 中获取该资源(我可以将其加载到 byte[] 中,

这里有很多东西,如果有什么令人困惑的地方,请在评论中提问,我可能说错了什么,或者完全错过了什么:) 谢谢

我将在这里展示一些我的类加载器(扩展 ClassLoader):

现在,它正在打印出“加载资源:文件名”,但它随后给了我一个 MalformedURLException(我没有协议 atm,只有一个文件路径,这不是一个真正有效的路径,但它只是试图将它提供给我的处理程序下面的类)。

类处理程序扩展 URLStreamHandler {

}

/*获取输入蒸汽的方法*/ 在我的真实代码中设置,但这与这里无关。那么有什么进一步的想法吗?

0 投票
3 回答
1932 浏览

java - 替换Java中的静态引用方法

我有一个像下面这样的类,它的方法只返回一个字符串,但我想修改它从另一个类返回的内容,而不是自己对其进行硬编码。

有没有办法做到这一点?我尝试了 BCEL,但这似乎并没有改变返回值。

编辑:这是一个模组。我试图通过不修改它使其完全独立于现有代码。

谢谢。