Я не очень разбираюсь в муравьях, и я не совсем уверен, почему Я получаю следующую ошибку, когда я запускаю муравей: Не могу найти целевую java: пожалуйста, установите JAVA_HOME в ее местоположение. Я вставил соответствующий исходный код ниже. Из того, что я вижу, запускается target -check-langtools.jdk.home. Но поскольку это зависит от -def-check, это выполняется. Передаются ли атрибуты (имя, свойство, маркер) в -def-check при вызове -check-langtools.jdk.home? Если это так - сбой должен происходить при условии, когда свойство не установлено (например, isset должен возвращать false). Я не понимаю, как свойство не устанавливается, если оно способно распечатать значение (т. Е. JAVA_HOME).Отсутствует свойство Ant?
фона: Попытка построить langtools от OpenJDK
<target name="-def-check">
<macrodef name="check">
<attribute name="name"/>
<attribute name="property"/>
<attribute name="marker" default=""/>
<sequential>
<fail message="Cannot locate @{name}: please set @{property} to its location">
<condition>
<not>
<isset property="@{property}"/>
</not>
</condition>
</fail>
<fail message="@{name} is not installed in ${@{property}}">
<condition>
<and>
<not>
<equals arg1="@{marker}" arg2=""/>
</not>
<not>
<available file="${@{property}}/@{marker}"/>
</not>
</and>
</condition>
</fail>
</sequential>
</macrodef>
</target>
<target name="-check-langtools.jdk.home" depends="-def-check">
<!-- <check name="target java" property="langtools.jdk.home" marker="${java.marker}"/> -->
<check name="target java" property="JAVA_HOME" marker="${java.marker}"/>
</target>
<target name="-check-jtreg.home" depends="-def-check">
<check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
</target>
зависит означает 'запустить это, прежде чем запустить me' – BevynQ
Итак, мой вопрос : как выполняется первое, что выполняется («Невозможно найти @ {имя}: пожалуйста, установите @ {свойство} в его местоположение») знайте вещи, которые установлены для запуска меня. например Невозможно найти целевую java: пожалуйста, установите @ {property} в ее местоположение, где property = JAVA_HOME – user3601148
isset ищет свойства, заданные с помощью '' –
BevynQ