gpt4 book ai didi

monitoring - Java 9 Jigsaw 对 javaagent 的支持

转载 作者:行者123 更新时间:2023-12-03 16:48:36 25 4
gpt4 key购买 nike

Java 9(特别是 Jigsaw)中是否有任何计划来支持 Java 监控代理的特殊要求?

通常,监控代理需要能够访问默认情况下原始 Java 应用程序不可用的类、包和模块。通过 -javaagent 命令行参数加载到 JVM 中的监控代理不会作为模块加载,即使 jar 文件包含 module-info.class 文件也是如此。我能够为我的监控代理提供所需权限的唯一方法是添加命令行参数,这些参数为所有未命名的模块提供这些权限。

最佳答案

Instrumentation class was extended使用允许重新定义任何模块的方法。它允许您添加额外的模块读取、导出、打开、服务使用和提供:

void redefineModule(Module module,
Set<Module> extraReads,
Map<String,Set<Module>> extraExports,
Map<String,Set<Module>> extraOpens,
Set<Class<?>> extraUses,
Map<Class<?>,List<Class<?>>> extraProvides);

此外, ClassFileTransformer API已扩展为注册 Java Module转型后:
default byte[] transform(Module module,
ClassLoader loader,
String className,
Class<?> classBeingRedefined,
ProtectionDomain protectionDomain,
byte[] classfileBuffer)
throws IllegalClassFormatException;

该模块与检测 API 相结合,可以进行任何必要的调整。

目前,Java 代理仍然加载在类路径上,没有应用任何模块化;然而,这可能会改变,因为 Java 9 还不是最终版本。

关于monitoring - Java 9 Jigsaw 对 javaagent 的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403069/

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