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

问题描述 投票:10回答:10

我最近升级到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
java eclipse ant eclipse-kepler
10个回答
10
投票

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


0
投票

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

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

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版本之后(我记得)。


7
投票

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

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


4
投票

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

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

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


2
投票

就我而言:

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

由于重新使用了具有不同Eclipse版本的旧工作区,我通过实数和现有jar替换Ant-> Runtime-> Classpath-> Ant Home Entries(Default)中的所有jar依赖项(来自我的eclipse-jee) -kepler-SR1-Win32的x86_64的\蚀\插件\ org.apache.ant_1.8.4.v201303080030 \ lib中)

它的解释是:https://bugs.eclipse.org/bugs/show_bug.cgi?id=102463#c41


2
投票

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

enter image description here


1
投票

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


0
投票

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

首选项> Ant>运行时


0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.