В документе openjdk "JEP 261: модульная система" говорится, что:
"Связанный параметр -Xbootclasspath/a
позволяет добавлять файлы и каталоги к пути к классу начальной загрузки по умолчанию. Этот параметр и связанный API в пакете java.lang.instrument
иногда используются агентами инструментария, поэтому для совместимости он все еще поддерживается во время выполнения.
Его значение, если указано, сообщается через системное свойство 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 +?