Муравей "JAVA_HOME не указывает на JDK" - но это делает

Я не могу запустить свой Ant build.xml, так как я обновился до Java 1.7.0_52 (или там о). Я годами запускал его через Eclipse на своем ноутбуке с Windows 7 - но с этим последним обновлением jave jdk что-то изменилось (?).

BUILD FAILED
C:\workspace\WaterAspectsModel3\build.xml:329: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "D:\Morten\Java\jdk1.7.0_52"

Это мой JDK! Таким образом, JAVA_HOME указывает на jdk (как также ясно из сообщения об ошибке). У меня как всегда мой JAVA_HOME с папкой bin в моем пути. Я настроил Eclipse - конфигурацию внешних инструментов - с JRE, указывающим на тот же D:\Morten\Java\jdk1.7.0_52 (через настройку "Separate JRE"). И я попробовал ряд других конфигураций - все без удачи.

Я читал тонны ответов в списках здесь и в других местах и ​​думаю, что перепробовал все предложения. Похоже, что в большинстве случаев JAVA_HOME указывает на jre, и его просто нужно исправить в jdk, или есть ";" в пути или что-то в этом роде. Похоже, что ничего из этого не применимо в моем случае.

Какие-либо предложения?

5 ответов

Решение

Настоящее сообщение в том, что муравей не может найти com.sun.tools.javac.Main,

Что, наряду с тем фактом, что последний JDK для Sun (Oracle) равен 1.7.0_13 (или, может быть, _14, но определенно не тот, что указывает каталог установки), заставляет меня думать, что вы не используете дистрибутив что муравей признает. Вы можете проверить это, запустив jar tvf $JAVA_HOME/lib/tools.jarи ищет этот класс.

Руководство по муравьям рассказывает о способах работы с разными компиляторами. Поскольку я использовал только компиляторы "Sun", я боюсь, что не могу дать вам никаких указателей.


Изменить: вы также можете попробовать установить fork="yes" в вашем файле сборки. Это должно запустить исполняемый файл компилятора, а не пытаться вызвать класс компилятора.

У меня было то же сообщение при запуске ANT через Eclipse.

Что сработало для меня:

  1. В Eclipse откройте меню: "Окно -> Настройки";
  2. Доступ к "Ant -> Runtime", в дереве;
  3. Откройте вкладку Classpath;
  4. Разверните пункт "Глобальные записи";
  5. Внутри глобальных записей, путь к tools.jar был неправ. Это указывало на более старую версию Java;
  6. Я удалил неправильную запись и добавил нужную с помощью кнопки "Добавить внешние банки". Это сработало.

введите описание изображения здесь

Решение "Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext Отсюда было очень полезно и работал для меня.

Попробуйте добавить JAVA_HOME\bin на ваш env PATH,

Добавьте JAVA_HOME в переменные Eclipse-Preferences-Java-Build Path-Classpath.

Извините за раскопки,

У меня была та же проблема, мое решение не требует каких-либо изменений в переменных среды и работает для недавнего JDK, где не может быть найден tools.jar.

Просто нажмите на небольшую стрелку вниз рядом с кнопкой запуска муравья. Затем нажмите "Настроить внешние инструменты". Затем на вкладке JRE выберите JDK, установленный на вашем компьютере, а не JRE, никаких проблем, если выбранный JDK не совпадает с JDK/JRE. как в вашем проекте.

Теперь все должно работать.

Другие вопросы по тегам