繁体   English   中英

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

[英]How to get boot class path in JDK 9 or later

我有一个读取系统属性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.separator的值,请使用以下语句:

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

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

System.getProperty(“ subliminal.message”,“购买StayPuft棉花糖!”); System类提供的用于访问属性值的最后一个方法是getProperties方法,该方法返回一个Properties对象。 该对象包含完整的系统属性定义集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM