Ant не работает в Eclipse Kepler (средство запуска виртуальной машины Java — произошло исключение Java)

Недавно я обновился до Eclipse Kepler, и у меня возникли проблемы с Ant. Я получаю средство запуска виртуальной машины Java. Произошла ошибка Java Exception независимо от того, какую цель я выбираю в своих файлах сборки.

Я попытался переустановить свой JDK, и я все еще получаю сообщение об ошибке. Я использую версию JDK 7u25. У меня для переменной среды JAVA_HOME установлено значение C:\Progra~1\Java\jdk1.7.0_25, поэтому я не думаю, что это проблема. Что еще может быть причиной проблемы?

РЕДАКТИРОВАТЬ: я также тестировал муравья в командной строке, и он отлично работает. Это ошибка в Кеплере?

РЕДАКТИРОВАТЬ 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

person Pink Jazz    schedule 26.08.2013    source источник
comment
и какое сообщение об ошибке?   -  person jmj    schedule 27.08.2013
comment
Никакого конкретного сообщения об ошибке, просто окно, показывающее, что произошло исключение Java.   -  person Pink Jazz    schedule 27.08.2013
comment
в этом поле должна быть кнопка сведений, нет?   -  person jmj    schedule 27.08.2013
comment
Нет, нет ни одного.   -  person Pink Jazz    schedule 27.08.2013
comment
может быть в журнале затмения?   -  person jmj    schedule 27.08.2013


Ответы (11)


Скорее всего, это связано с разницей в версии Ant, используемой eclipse. Пожалуйста, обновите Ant_Home в eclipse. Window --> Preferences --> Ant --> Runtime --> Classpath --> Щелкните Ant Home.. и попытайтесь найти последнюю версию местоположения каталога Ant. Это работает для меня :)

person Sankalp    schedule 09.07.2014
comment
Ошибка OP возникает, если вы перемещаете муравья в другой каталог без обновления «Ant Home» в Eclipse. Этот ответ помог решить проблему. - person KyleM; 21.11.2014

У меня была такая же проблема, и мне потребовалось некоторое время, чтобы выяснить, каково решение. Я следовал всем предложениям на этой странице и подобных страницах; ничего не помогло! Я удалил и установил jdk, eclipse, сбросил свой проект, я заставил Eclipse очистить его параметры, ...; нет успеха.

Что, наконец, решило мою проблему, так это удаление каталога .metadata в папке рабочей области. Я не знаю, что там хранит eclipse, но удаление каталога .metadata заставило Eclipse повторно инициировать каждую настройку. Мне пришлось повторно импортировать структуру моего проекта. Он снова работает как шарм. Нет расплывчатого сообщения об ошибке «Произошло исключение».

person Omid    schedule 06.10.2013

IDE, например (Eclipse-Oxygen), будет иметь версии ant по умолчанию. Если ваша сборка ant XML несовместима с более поздней версией ANT.

Понизить/Повысить версию ANT до подходящей. JDK не совместим со всеми сборками ANT. Например, ANT 1.9.2 — последняя версия, поддерживающая JAVA 7.

Поэтому нам нужно сопоставить версию JDK и версию ANT соответственно. Переопределите версию IDE по умолчанию, используя Preferences -> ANT -> Runtime -> Щелкните Ant Home (и выберите там новую версию ANT Home, которая переопределит записи Ant Home)

person Sireesh Yarlagadda    schedule 15.11.2017

Для меня проблемой был JDK, который я пытался использовать. Проект, который я хотел построить, был настроен на использование 1.6 JDK. Я получил ту же ошибку, что и спрашивающий, но когда я перешел на Java 8, сборка заработала нормально. Поэтому я предполагаю, что версия ANT, которая поставляется с более новыми версиями Eclipse, не работает со старыми JDK.

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

person jhertz    schedule 21.08.2017

В моем случае :

  • нет входа в eclipse, просто сообщение: Java Virtual Machine Launcher: произошло исключение Java.

Из-за повторного использования старой рабочей области с другой версией Eclipse я решил заменить все зависимости jar в Ant-> Runtime-> Classpath-> Ant Home Entries (по умолчанию) реальными и существующими 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

person immobiluser    schedule 04.02.2014
comment
Вы также можете просто нажать Restore Defaults на вкладке Ant›Runtime›Classpath. - person Nick; 13.11.2014

У меня была такая же ошибка; переключил рабочее пространство с Eclipse Indigo на Eclipse Kepler. Я смог решить эту проблему, сбросив значение Ant_Home. Первоначально он указывал на правильную папку, но я просто сбросил его в ту же папку и нажал «Применить». Теперь работает нормально. Надеюсь это поможет.

person theAspirant    schedule 03.03.2014

Возможно, в Eclipse не определен правильный JAR. Вы пытались добавить tools.jar, необходимый для Ant?

Настройки > Ant > Среда выполнения

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

person dispake    schedule 26.08.2013

Для меня я просто удаляю папку метаданных и запускаю eclipse с импортом всего вашего проекта библиотеки. Проверьте путь к классу ant и снова добавьте эту банку. Спасибо

person Omar Faroque Anik    schedule 09.06.2014

В моем случае ant home указывал на символическую ссылку (на реальную установку муравья). Эклипсу это не понравилось. Обновление до фактической папки установки решило проблему.

person shonky linux user    schedule 13.07.2015

У меня была эта проблема недавно (тогда коллега) в Eclipse при запуске сценария ANT из интерфейса пользовательского интерфейса (контекстное меню, Run As или Debug As).

По какой-то причине среда выполнения JRE для сценария ANT (или для самого ANT, пока непонятно) была изменена. Эту среду выполнения JRE можно изменить в контекстном меню сценария ANT, External Tools Configurations...:

Контекстное меню - Запуск от имени - Настройка внешних инструментов

Затем перейдите на вкладку JRE с правой стороны:

Конфигурация внешних инструментов — среда выполнения JRE

У моего коллеги была неправильная настройка Separate JRE, он изменил ее на правильную настройку JRE (в его случае JDK 1.8_XXX). Это было после слияния, когда, по-видимому, некоторые неверные настройки были объединены в ветку (по крайней мере, мы так думаем).

В моем случае я думаю, что это было установлено как Run in the same JRE as the workspace, что было неправильно. Я также установил для этого Separate JRE, выбрал правильный 1.8 JDK, и это решило проблему. Это было после обновления версии Eclipse (насколько я помню).

person TT.    schedule 19.12.2017

У меня была такая же проблема, вероятно, вызванная переключением между двумя версиями Eclipse, но с использованием одного и того же рабочего пространства. Некоторое время это работало благополучно, но внезапно возникло исключение.

Я удалил папку .metadata в папке рабочей области.

Я снова настроил свое рабочее пространство: закрыл все раздражающие бесполезные вкладки Eclipse по умолчанию, импортировал существующий проект, установил домашний каталог Ant в Ant... Run Configurations и т. д.

person J Slick    schedule 22.05.2020