При попытке скомпилировать Javadoc taglet, который требует $JAVA_HOME/lib/tools.jar
, я обнаружил, что муравей (версия 1.8.4) устанавливает java.home
к $JAVA_HOME/jre
, а не просто $JAVA_HOME
, Я проверил это таким образом:
<echo>${java.home}</echo>
<echo>${env.JAVA_HOME}</echo>
[echo] /usr/java/jdk1.7.0_21/jre
[echo] /usr/java/jdk1.7.0_21
Согласно ant -diagnostics
, не существует какой-либо собственности, как jdk.home
. Таким образом, чтобы использовать tools.jar
я должен сделать:
<classpath location="${java.home}/../lib/tools.jar"/>
Итак, у меня есть два вопроса:
1) Есть ли что-то не так с моей установкой муравья, который вызывает java.home
, чтобы указать на JRE вместо JDK?
2) Если это способ, которым должен работать муравей, использует ..
в моем классе, как я должен что-то делать? Или я должен делать ${env.JAVA_HOME}/lib/tools.jar
? Или что-то еще?
ant - это сценарий оболочки. Попробуйте запустить его с помощью отладки оболочки (+ x). Убедитесь, что java, найденный муравьем, является реальной java (не какие-либо софт-ссылки) – Jayan
1) Я отредактировал сценарий оболочки, чтобы поместить 'echo $ JAVA_HOME' прямо перед последней строкой, и это было в этой точке без изменений. 2) Я попробовал переименовать каталог JDK и поместить символическую ссылку на новое имя на своем месте. '$ {java.home}' изменено, чтобы отразить переименованный каталог, поэтому он использует правильный каталог. –
Извините, я не видел этого до сих пор! – ingyhere