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 (как я помню).