JavaAgent爪哇9

问题描述 投票:4回答:2

在此之前的Java 9,监控JavaAgent加载到JVM通过boostrapClassloader,以便监视的应用程序可以访问它们

在Java 9模块化的架构,只有java.base module被加载在引导类加载器等,Java代理可以访问内部java.base只有类?它不能默认外java.base访问什么?

什么是需要内部javaAgent改变,以便访问像java.sql中其他模块?

java java-9 jigsaw
2个回答
4
投票

我只是确认本作的最新版本,并使用时,

Instrumentation::appendToBootstrapClassLoaderSearch

类被添加到引导装载程序(null),并装入该装载机的unnamed module。这是Java 9,EA-176真。


1
投票

这里有一个链接在JDK 9 EA java.lang.instrument包的描述构建:

http://download.java.net/java/jdk9/docs/api/java/lang/instrument/package-summary.html

该段“提供给代理类加载代理类和模块/类”应该帮助这里的讨论。

至于java.sql中模块那么它的那些不再定义为引导加载程序数“非核心的”模块之一。移动这些模块平台的类加载器意味着他们能够以减少权限运行,并与平台的整体安全性,以便帮助。这应该是完全透明的类路径上的应用程序和库及只应通过(a)用-Xbootclasspath /一个运行的代码引人注目,(b)与null作为父母,以及(c)支撑剂产生的自定义类班加将引导-Class-Path的属性或appendToBootstrapClassLoaderSearch API引导类加载器搜索。

© www.soinside.com 2019 - 2024. All rights reserved.