12

我最近升级到 Eclipse Kepler,但遇到了 Ant 问题。我正在获取 Java 虚拟机启动器 - 无论我在构建文件中选择哪个目标,都会发生 Java 异常错误。

我尝试重新安装我的 JDK,但我仍然收到错误消息。我正在运行 7u25 版本的 JDK。我将 JAVA_HOME 环境变量设置为C:\Progra~1\Java\jdk1.7.0_25,所以我认为这不是问题所在。还有什么可能导致问题?

编辑:我还在命令行中测试了 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
4

11 回答 11

12

这很可能是由于 eclipse 使用的 Ant 版本不同。请在 eclipse 中更新 Ant_Home。Window --> Preferences --> Ant --> Runtime --> Classpath --> 点击 Ant Home.. 并尝试找到最新版本的 Ant 目录位置。这对我有用:)

于 2014-07-09T06:01:49.573 回答
7

我遇到了同样的问题,我花了一段时间才弄清楚解决方案是什么。我遵循了此页面和类似页面上的所有建议;没有任何帮助!我卸载并安装了jdk,eclipse,重置我的项目,我强迫Eclipse清除它的参数,...; 没有成功。

最终解决我的问题的是删除工作区文件夹中的 .metadata 目录。我不知道 eclipse 在那里保留了什么,但删除 .metadata 目录会导致 Eclipse 重新启动每个设置。我确实必须重新导入我的项目结构。它再次像魅力一样起作用。没有模糊的“发生异常”错误消息。

于 2013-10-06T09:49:39.517 回答
4

像 (Eclipse-Oxygen) 这样的 IDE 将具有默认的 ant 版本。如果您的 ant 构建 XML 与更高版本的 ANT 不兼容。

将 ANT 版本降低/提高到合适的版本。JDK 与所有 ANT 构建不兼容。例如,ANT 1.9.2 是支持 JAVA 7 的最后一个版本。

所以我们需要分别匹配JDK版本和ANT版本。使用 Preferences -> ANT -> Runtime -> 单击 Ant Home 覆盖 IDE 默认版本(并在此处选择新版本的 ANT Home,这将覆盖 Ant Home Entries)

于 2017-11-15T23:05:10.293 回答
4

对我来说,问题是我试图使用的 JDK。我想要构建的项目设置为使用 1.6 JDK。我得到了与提问者相同的错误,但是当我更改为 Java 8 时,构建工作正常。所以我假设较新版本的 Eclipse 附带的 ANT 版本不适用于较旧的 JDK。

在此处输入图像描述

于 2017-08-21T09:03:44.233 回答
2

就我而言:

  • 没有登录 Eclipse,只有消息:Java 虚拟机启动器:发生 Java 异常。

由于重复使用具有不同 Eclipse 版本的旧工作区,我通过将 Ant->Runtime->Classpath->Ant Home Entries (Default) 中的所有 jar 依赖替换为 reals 和现有 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

于 2014-02-04T14:09:48.963 回答
1

我有同样的错误;将工作区从 Eclipse Indigo 切换到 Eclipse Kepler。我能够通过重置 Ant_Home 值来解决它。它最初指向正确的文件夹,但我只是将其重置为同一个文件夹并单击“应用”。现在工作正常。希望这可以帮助。

于 2014-03-03T11:55:18.103 回答
0

Eclipse 可能没有定义正确的 JAR。您是否尝试添加 Ant 所需的 tools.jar?

首选项 > Ant > 运行时

在此处输入图像描述

于 2013-08-26T21:40:23.077 回答
0

对我来说,我只需删除元数据文件夹并通过导入所有库项目来启动 Eclipse。检查您的 ant 类路径并再次添加此 jar。谢谢

于 2014-06-09T16:20:37.990 回答
0

在我的例子中,ant home 指向一个符号链接(指向一个真正的 ant 安装)。Eclipse 不喜欢这样。更新到实际安装文件夹解决了这个问题。

于 2015-07-13T06:28:44.200 回答
0

我遇到了同样的问题,可能是由于在两个版本的 Eclipse 之间切换但使用相同的工作区引起的。这已经安全地工作了一段时间,但突然出现了异常。

我删除了工作区文件夹中的 .metadata 文件夹。

我再次设置了我的工作区:关闭所有烦人的无用 Eclipse 默认选项卡,导入现有项目,在 Ant...Run Configurations 中设置 Ant 主目录等。

于 2020-05-22T16:46:26.417 回答
0

我最近(当时是一位同事)在 Eclipse 中从 UI 界面(上下文菜单Run AsDebug As)运行 ANT 脚本时遇到了这个问题。

由于某种原因,ANT 脚本(或 ANT 本身,目前尚不清楚)的运行时 JRE 已更改。可以从 ANT 脚本的上下文菜单中更改此运行时 JRE 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 版本之后(我记得)。

于 2017-12-19T06:16:30.280 回答