Есть ли подобное свойство, такое как System.getProperty ("java.home"), которое будет возвращать каталог JDK вместо каталога JRE? Я посмотрел https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperties (), и похоже, что для JDK ничего нет.





Один из способов - установить переменную системной среды, например «JAVA_HOME», и использовать ее.
Возможно, это не лучшее решение, но оно будет работать, и это то, что требуют от вас другие приложения, которым требуется JDK, а не JRE (например, CruiseControl) при их настройке.
Альтернативой является определение пути к JDK через файл свойств. Это может быть добавлено к переменной среды System, чтобы разрешить переопределение.
В зависимости от вашего варианта использования вы можете поместить этот файл свойств в домашний каталог или в пакет с вашим приложением.
Для JDK нет свойства, аналогичного java.home. Есть несколько практических правил, которые помогают определить, является ли JRE, в которой вы работаете, частью JDK. Например, найдите «$ {java.home} /../ lib / tools.jar». Другими словами, в некоторых случаях вы можете предложить вариант по умолчанию, но в целом пользователь должен указать вам, какой JDK использовать.