从网络获取运行时类信息?类似于 javap 但在运行时加载到内存中的类
我正在处理 Websphere 和复杂的类加载问题。我希望能够下载或打印通常由 javap 打印的信息(方法等)。
我可能还需要获取原始二进制类数据,以执行二进制差异。
你会怎么做?
I am working with Websphere and complicated classloading issues. I want to be able to download or print information that would normally get printed by javap (the methods, etc).
I may also need to get the raw binary class data, to perform a binary diff.
How would you do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以编写一个 Servlet 或 JMX MBean 来向您的客户端公开该类。
Servlet:
客户端:
资源参数必须是您的类文件 your.ClassName ->你的/ClassName.class。
然后您可以保存文件并使用 javap。
(我认为 MBean 必须将您的类文件编码为字符串(例如 Base 64),因为不支持 byte[]。但我不确定这一点。其余的都是一样的。)
如果这将部署在生产中应该配置某种形式的身份验证。
You could write a Servlet or JMX MBean that exposes the class to the your client.
Servlet:
Client:
The resource parameter has to be your class file your.ClassName -> your/ClassName.class.
You can then save the file and use javap.
(I think the MBean has to encode your class file into a string (e.g. Base 64) as byte[] is not supported. But I'm not sure about that. The rest would be the same.)
If this will be deployed in production some form of authentication should be configured.