Ant无法在Eclipse Kepler中工作(Java虚拟机启动器 - 发生了Java异常)

时间:2013-08-26 21:12:48

标签: java eclipse ant eclipse-kepler

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

我尝试重新安装我的JDK,但仍然遇到错误。我正在运行JDK的7u25版本。我将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

11 个答案:

答案 0 :(得分:10)

这很可能是由于eclipse使用的Ant版本不同。请在eclipse中更新Ant_Home。窗口 - >偏好 - >蚂蚁 - >运行时 - > Classpath - >单击Ant Home ..并尝试找到最新版本的Ant目录位置。 这对我有用:)

答案 1 :(得分:7)

我遇到了同样的问题,让我花了一些时间来弄清楚解决方案是什么。我按照本页和类似页面上的所有建议;什么都没有!我卸载并安装了jdk,eclipse,重置我的项目,我强制Eclipse清除它的参数,......;没有成功。

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

答案 2 :(得分:4)

IDE(Eclipse-Oxygen)将具有默认的ant版本。如果你的ant build XML与更高版本的ANT不兼容。

将ANT版本降低/升高到合适的版本。 JDK与所有ANT Builds不兼容。对于Instance,ANT 1.9.2是支持JAVA 7的最后一个版本。

因此我们需要分别匹配JDK版本和ANT版本。使用“首选项”覆盖IDE默认版本 - > ANT - >运行时 - >单击Ant Home(并在那里选择新版本的ANT Home,它将覆盖Ant Home Entries)

答案 3 :(得分:2)

就我而言:

  • 没有登录eclipse,只是消息:Java虚拟机启动器:发生了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 :(得分:2)

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

enter image description here

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

偏好设置>蚂蚁>运行

enter image description here

答案 7 :(得分:0)

对我来说,我只是删除元数据文件夹并启动eclipse并导入所有库项目。检查你的ant类路径并再次添加这个jar。谢谢

答案 8 :(得分:0)

在我的情况下,蚂蚁家指向一个符号链接(一个真正的蚂蚁安装)。 Eclipse不喜欢这样。更新到实际的安装文件夹解决了这个问题。

答案 9 :(得分:0)

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

由于某种原因,ANT脚本的运行时JRE(或者ANT本身,此时不清楚)已经改变了。可以从ANT脚本的上下文菜单External Tools Configurations...

更改此运行时JRE

Context Menu - Run As - External Tools Configuration

然后转到右侧的JRE标签:

External Tools Configuration - Runtime JRE

我的同事设置了Separate JRE错误,将其更改为正确的JRE设置(在他的情况下为JDK 1.8_XXX)。这是在合并之后,其中一些不正确的设置被合并到一个分支中(或者我们认为)。

在我的情况下,我认为我将此设置为Run in the same JRE as the workspace这是错误的。我还将其设置为Separate JRE,选择了正确的1.8 JDK并解决了问题。这是在升级Eclipse版本之后(我记得)。

答案 10 :(得分:0)

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

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

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