openjdk 文档“JEP 261:模块系统”指出:
“一个相关的选项,-Xbootclasspath/a
允许将文件和目录附加到默认的引导类路径。这个选项,以及java.lang.instrument
包中的相关 API,有时被检测代理使用,因此为了兼容性,它在运行时仍然受支持。
它的值(如果指定)通过 JDK 特定的系统属性报告jdk.boot.class.path.append
。”
但是,当我尝试使用此功能时,它不起作用。具体来说,我正在使用 Java 代理进行检测。
在JDK7和JDK8上一切正常。在JDK9+上-Xbootclasspath/a
似乎可以正常工作,但系统属性jdk.boot.class.path.append
始终为null
.
在 Java 7/8 上:
String bootclasspath = System.getProperty(`sun.boot.class.path`);
按预期工作。
在 Java 9 上:
String bootclasspath = System.getProperty("jdk.boot.class.path.append");
总是返回空字符串。
我添加了一些调试代码来转储所有系统属性,似乎没有这样的属性。
我已经尝试过jdk-9.0.4
并且jdk-11.0.3
得到了类似的结果。
关于如何在 JDK9+ 上获取引导类路径的任何想法?