Ant не работает в Eclipse Kepler (запуск виртуальной машины Java - произошло исключение Java)
Недавно я обновился до Eclipse Kepler, и у меня проблемы с Ant. Я получаю Java Virtual Machine Launcher - произошла ошибка Java, независимо от того, какую цель я выбираю в своих файлах сборки.
Я попытался переустановить мой JDK, и я все еще получаю ошибку. Я запускаю версию JuK версии 7u25. У меня есть переменная окружения JAVA_HOME, установленная на C:\Progra~1\Java\jdk1.7.0_25
, поэтому я не думаю, что это проблема. Что еще может вызвать проблему?
EDIT: Я также проверил ant в командной строке, и он работает отлично. Это ошибка в Кеплере?
ИЗМЕНИТЬ 2: Вот журнал ошибок:
org.eclipse.core.runtime.CoreException: Could not find one or more classes: "org.apache.tools.ant.BuildLogger". Please check the Ant classpath.
at org.eclipse.ant.core.AntRunner.problemLoadingClass(AntRunner.java:467)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:380)
at org.eclipse.ant.internal.launching.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:307)
at org.eclipse.ant.internal.launching.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:260)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:700)
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:181)
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:169)
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:88)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:726)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:514)
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:423)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:830)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.lang.NoClassDefFoundError: org/apache/tools/ant/BuildLogger
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:324)
... 24 more
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.BuildLogger
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at org.eclipse.ant.internal.core.AntClassLoader.findClass(AntClassLoader.java:54)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 29 more
Ответы
Ответ 1
Это, скорее всего, связано с различием в версии Ant, используемой eclipse. Обновите Ant_Home в затмении. Окно → Настройки → Ant → Время выполнения → Путь к классам → Нажмите Ant Главная.. и попробуйте найти последнюю версию каталога Ant.
Это работает для меня:)
Ответ 2
У меня была та же проблема, и мне это помогло понять, что такое решение. Я следил за всем предложением на этой странице и схожими страницами; Ничего страшного! Я удалил и установил jdk, eclipse, reset мой проект, я заставил Eclipse очистить его параметры,...; нет успеха.
Наконец, моя проблема заключалась в удалении каталога .metadata в папке рабочего пространства. Я не знаю, что затмение хранит там, но удаление директивы .metadata привело к тому, что Eclipse возобновил все настройки. Мне нужна reimport моя структура проекта. Он снова работает как шарм. Отсутствие неопределенного сообщения об ошибке "Произошло исключение".
Ответ 3
В моем случае:
- no log in eclipse, просто сообщение: La Virtual Machine Launcher: произошла ошибка Java.
Из-за повторного использования старой рабочей области с другой версией Eclipse я решил, заменив всю зависимость jar в Ant → Runtime- > Classpath → Ant Home Entries (Default) по действиям и существующим jar (из моего eclipse-jee-kepler-SR1-win32-x86_64\eclipse\plugins\org.apache.ant_1.8.4.v201303080030\lib)
Он объясняет: https://bugs.eclipse.org/bugs/show_bug.cgi?id=102463#c41
Ответ 4
IDE-образ (Eclipse-Oxygen) будет иметь версии по умолчанию ant. Если ваш XML-код ant не совместим с более высокой версией ANT.
Нижняя/Высшая версия ant подходит к подходящей. JDK не совместим со всеми ant Builds. Для экземпляра ant 1.9.2 - последняя версия для поддержки JAVA 7.
Итак, нам нужно сопоставить версию JDK и версию ant соответственно. Переопределите версию по умолчанию IDE с помощью Preferences → ant → Runtime → Нажмите ant Home (и выберите новую версию ant Home там, которая переопределит ant Home Entries)
Ответ 5
У меня была такая же ошибка; коммутируемое рабочее пространство от Eclipse Indigo до Eclipse Kepler.
Я смог решить это, сбросив значение Ant_Home. Первоначально он указывал на правильную папку, но я просто reset в той же папке и нажал кнопку "Применить". Сейчас работает отлично.
Надеюсь, это поможет.
Ответ 6
Для меня проблема была в JDK, который я пытался использовать. Проект, который я хотел построить, был настроен на использование 1.6 JDK. Я получил ту же ошибку, что и вопросник, но когда я перешел на Java 8, сборка работала нормально. Поэтому я предполагаю, что версия ANT, которая поставляется с более новыми версиями Eclipse, не работает со старыми JDK.
![введите описание изображения здесь]()
Ответ 7
Возможно, что Eclipse не имеет правильного JAR. Вы пытались добавить tools.jar для Ant?
Настройки > Ant > Время выполнения
![enter image description here]()
Ответ 8
Для меня я просто удаляю папку метаданных и запускаю eclipse с импортом всего проекта вашей библиотеки. Проверьте свой путь класса ant и добавьте эту банку еще раз. Спасибо
Ответ 9
В моем случае ant home указывал на символическую ссылку (на настоящую установку ant). Eclipse это не понравилось. Обновление фактической папки установки решило проблему.
Ответ 10
У меня была эта проблема недавно (затем коллега) в Eclipse при запуске ANT script из интерфейса пользовательского интерфейса (контекстное меню, Run As
или Debug As
).
По какой-то причине изменилось время выполнения JRE для ANT script (или для самого ANT, непонятного на данном этапе). Этот Runtime JRE можно изменить из контекстного меню для ANT script, External Tools Configurations...
:
![Контекстное меню - Запуск как - Настройка внешних инструментов]()
Затем перейдите на вкладку JRE справа:
![Настройка внешних инструментов - Runtime JRE]()
У моего коллеги был неправильный параметр Separate JRE
, он был изменен на соответствующий параметр JRE (JDK 1.8_XXX в его случае). Это было после слияния, где некоторые неправильные настройки были объединены в ветку (или, как мы думаем).
В моем случае, я думаю, что у меня был этот набор как Run in the same JRE as the workspace
, который был неправильным. Я также установил это на Separate JRE
, выбрал правильный 1.8 JDK и устранил проблему. Это было после обновления версии Eclipse (как я помню).