如何在 JDK 9 或更高版本中获取引导类路径



>我有一个类加载器应用程序,它读取系统属性sun.boot.class.path

但是我在JDK 9的发行说明中发现此属性已被删除。

System.getProperty("sun.boot.class.path"); // In JDK 9/10 this returns null 

但我仍然想在 JDK 10 中检索此属性值。怎么能做到呢?

我期待如下值:

/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jfr.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/classes

仅供参考:

我不想使用-Xbootclasspath选项。只需要路径值。

删除引导。 它应该像这样工作:

System.getProperty("java.class.path")

了解更多 :

System 类有两个用于读取系统属性的方法:getProperty 和 getProperties。

System 类有两个不同版本的 getProperty。两者都检索参数列表中指定的属性的值。两个 getProperty 方法中较简单的一个采用单个参数,即一个属性键 例如,若要获取 path.分隔符的值,请使用以下语句:

System.getProperty("path.separator"(; 方法返回一个包含属性值的字符串。如果该属性不存在,则此版本的 getProperty 返回 null。

另一个版本的 getProperty 需要两个 String 参数:第一个参数是要查找的键,第二个参数是找不到键或没有值时返回的默认值。例如,以下 getProperty 调用将查找名为 subliminal.message 的系统属性。这不是有效的系统属性,因此此方法不返回 null,而是返回作为第二个参数提供的默认值:"购买 StayPuft 棉花糖!

System.getProperty("subliminal.message", "Buy StayPuft Marshmallows!"(; System 类提供的用于访问属性值的最后一个方法是 getProperties 方法,该方法返回一个属性对象。此对象包含一组完整的系统属性定义。

相关内容

最新更新