Есть ли подобное свойство, такое как System.getProperty ("java.home"), которое вернет каталог JDK вместо каталога JRE? Я посмотрел http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#getProperties() и, похоже, для JDK ничего не было.Как я могу найти расположение каталога JDK в Java?
ответ
Одним из путей было бы установить переменную системной среды, такую как «JAVA_HOME», и использовать ее.
Это может быть не лучшее решение, но это сработает, и это потребует от других приложений, требующих JDK, а не JRE (например, CruiseControl), когда вы их настраиваете.
Альтернативой является определение пути к JDK через файл свойств. Это может быть в дополнение к переменной среды System, позволяющей переопределить.
В зависимости от вашего варианта использования вы можете поместить этот файл свойств в домашний каталог или пакет с помощью своего приложения.
Для JDK нет собственности, аналогичной java.home
. Существуют некоторые эмпирические правила, которые помогают определить, является ли JRE, в которой вы работаете, частью JDK. Например, найдите «$ {java.home} /../ lib/tools.jar». Другими словами, в некоторых случаях вы можете предлагать по умолчанию, но в целом пользователь должен сообщить вам, какой JDK использовать.