Как получить путь к загрузочному классу в JDK 9 или новее - PullRequest
0 голосов
/ 21 мая 2018

У меня есть приложение загрузчика классов, которое читает системное свойство 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.Просто нужно значение пути.

1 Ответ

0 голосов
/ 21 мая 2018

Удалить загрузчик.это должно работать так:

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

Чтобы понять больше:

В классе System используются два методадля чтения системных свойств: getProperty и getProperties.

Класс System имеет две разные версии getProperty.Оба получают значение свойства, указанного в списке аргументов.Более простой из двух методов getProperty принимает один аргумент - ключ свойства. Например, чтобы получить значение path.separator, используйте следующий оператор:

System.getProperty ("path.separator");Метод getProperty возвращает строку, содержащую значение свойства.Если свойство не существует, эта версия getProperty возвращает значение null.

Другая версия getProperty требует двух аргументов String: первый аргумент - это ключ для поиска, а второй аргумент - значение по умолчанию, которое возвращается, еслиключ не может быть найден или если он не имеет значения.Например, следующий вызов getProperty ищет свойство System с именем subliminal.message.Это недопустимое системное свойство, поэтому вместо возврата значения null этот метод возвращает значение по умолчанию, указанное в качестве второго аргумента: «Buy StayPuft Marshmallows!»

System.getProperty («subliminal.message», «BuyStayPuft Marshmallows! ");Последний метод, предоставленный классом System для доступа к значениям свойств, - это метод getProperties, который возвращает объект Properties.Этот объект содержит полный набор определений системных свойств.

...