首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 9 Jigsaw对javaagent的支持

Java 9 Jigsaw对javaagent的支持
EN

Stack Overflow用户
提问于 2017-02-23 05:58:22
回答 1查看 496关注 0票数 8

Java9(特别是Jigsaw)中有没有计划支持Java监控代理的特殊需求?

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

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 03:13:13

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

代码语言:javascript
复制
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

代码语言:javascript
复制
default byte[] transform(Module module,
                         ClassLoader loader,
                         String className,
                         Class<?> classBeingRedefined,
                         ProtectionDomain protectionDomain,
                         byte[] classfileBuffer)
                  throws IllegalClassFormatException;

此模块与插装API相结合,允许进行任何必要的调整。

目前,Java代理仍然加载在类路径上,没有应用任何模块化;但是,由于Java9还不是最终版本,这种情况可能会改变。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42403069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档