从任意 .class 文件创建 BCEL JavaClass 对象
我正在玩BCEL。 我没有使用它来生成字节码,而是尝试检查现有已编译类的结构。
我需要能够指向硬盘驱动器上任何位置的任意 .class 文件并加载 JavaClass 对象基于此。 理想情况下,我希望避免将给定的类添加到我的类路径中。
I'm playing around with BCEL. I'm not using it to generate bytecode, but instead I'm trying to inspect the structure of existing compiled classes.
I need to be able to point to an arbitrary .class file anywhere on my hard drive and load a JavaClass object based on that. Ideally I'd like to avoid having to add the given class to my classpath.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最简单的方法是使用文件名创建一个 ClassParser 并调用 parse()。 或者,您可以使用 SyntheticRepository 并提供类路径(不是您的类路径,IYSWIM)。
The straightforward way is to create a ClassParser with the file name and call parse(). Alternatively you can use SyntheticRepository and supply a classpath (that is not your classpath, IYSWIM).
现有的.class可以类加载到java lang类对象。 然后可以将其转换为BCEL中间javaclass结构。 以下代码可能有帮助:-
The existing .class can be class loaded to java lang class object. Then it can be converted into BCEL intermediate javaclass structure. The following code may help:-