Муравей "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.
Что сработало для меня:
- В Eclipse откройте меню: "Окно -> Настройки";
- Доступ к "Ant -> Runtime", в дереве;
- Откройте вкладку Classpath;
- Разверните пункт "Глобальные записи";
- Внутри глобальных записей, путь к
tools.jar
был неправ. Это указывало на более старую версию Java; - Я удалил неправильную запись и добавил нужную с помощью кнопки "Добавить внешние банки". Это сработало.
Решение "Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext
Отсюда было очень полезно и работал для меня.
Добавьте JAVA_HOME в переменные Eclipse-Preferences-Java-Build Path-Classpath.
Извините за раскопки,
У меня была та же проблема, мое решение не требует каких-либо изменений в переменных среды и работает для недавнего JDK, где не может быть найден tools.jar.
Просто нажмите на небольшую стрелку вниз рядом с кнопкой запуска муравья. Затем нажмите "Настроить внешние инструменты". Затем на вкладке JRE выберите JDK, установленный на вашем компьютере, а не JRE, никаких проблем, если выбранный JDK не совпадает с JDK/JRE. как в вашем проекте.
Теперь все должно работать.