有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

但是我在JDK9的发行说明中发现这个属性已经被删除了

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

但是我仍然希望在JDK10中检索这个属性值。怎样才能做到呢

我期望值如下所示:

/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选项。只需要路径值


共 (1) 个答案

  1. # 1 楼答案

    删除启动。它应该是这样工作的:

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

    了解更多信息:

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

    System类有两个不同版本的getProperty。两者都检索参数列表中命名的属性的值。两个getProperty方法中较简单的方法使用单个参数(例如属性键)来获取path的值。分隔符,请使用以下语句:

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

    getProperty的另一个版本需要两个字符串参数:第一个参数是要查找的键,第二个参数是在找不到键或键没有值时返回的默认值。例如,下面对getProperty的调用将查找名为subliminal的系统属性。消息这不是有效的系统属性,因此该方法不返回null,而是返回作为第二个参数提供的默认值:“Buy StayPuft Marshmallows!”

    系统。getProperty(“subminal.message”,“购买StayPuft棉花糖!”); 系统类提供的访问属性值的最后一个方法是getProperties方法,它返回Properties对象。此对象包含一整套系统特性定义