gpt4 book ai didi

java - 从网络获取运行时类信息?类似于 javap 但在运行时加载到内存中的类

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:57 30 4
gpt4 key购买 nike

我正在处理 Websphere 和复杂的类加载问题。我希望能够下载或打印通常由 javap 打印的信息(方法等)。

我可能还需要获取原始二进制类数据,以执行二进制差异。

你会怎么做?

最佳答案

您可以编写一个 Servlet 或 JMX MBean 来向客户端公开该类。

Servlet:

String resourceParameter = ...;
OutputStream out = ...:
InputStream input = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(resourceParameter)
write(input, out);

客户:

GET http://host/DiagnosticServlet?resource=your/ClassName.class

资源参数必须是您的类文件 your.ClassName -> your/ClassName.class。然后您可以保存文件并使用 javap。

(我认为 MBean 必须将您的类文件编码为字符串(例如 Base 64),因为不支持 byte[]。但我对此不确定。其余的都是一样的。)

如果将其部署在生产中,则应配置某种形式的身份验证。

关于java - 从网络获取运行时类信息?类似于 javap 但在运行时加载到内存中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396449/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com