我在eclipse中编写代码,代码运行良好,但当我试图通过运行build.xml
在ant中构建它时。我得到
Java Virtual Machine Launcher: Could not find the main class. Program will exit.
有什么建议吗?
如果您使用的是java 1.6和升级的eclipse,那么它更有可能是由eclipse引起的——解决方案是转到Run as→外部工具配置…→JRE,其中默认设置为"Separate JDK":jdk1.6.0_31,并将其更改为"在与工作区相同的JRE中运行"(1.7/1.8),它应该可以工作。
Bug修复将提供一个工作的默认配置与设置。如果用户向"首选项"中添加额外的JDK,配置应该不会中断。
有关更多详细信息,请参阅Bug 472599
您需要验证一些事情
1)java bin目录的路径设置正确吗(要检查此项,您需要在命令提示符(cmd)中写入命令javac
,然后您将在cmd控制台上获得指令列表)
2)打开eclipse并转到Classpath选项卡中的窗口->首选项->Ant->运行时
,看到Ant Home Entries指向错误的目录(它仍然指向最后一个目录,这个目录不存在),你要做的就是将Ant Home指向正确的目录,指向Ant Home按钮
选择Ant Home目录,例如,我使用Eclipse 3.3.1,Ant Home是Eclipse插件目录org.apache.Ant_1。7.0.v200706080842.
右键单击build.xml文件,然后选择运行方式-->外部工具配置-->Jre-->选择在与工作区相同的Jre中运行。
如果您正在使用Java 1.5(也就是说,它在您的工作区、项目或ant配置中被指定为要使用的JVM),这也是由Eclipse中的一个错误/特性引起的:不再支持Java 1.5。您需要升级到Java 1.6。
请参阅:Eclipse bugs 421423
您使用的ant版本可能与您使用的java版本不兼容。我有一个ant 1.9.4,试图用java 1.4运行,却遇到了同样的错误。用java 1.7运行为我修复了它!
我面临的错误:
"Could not find the main class :
org.eclipse.ant.internal.launching.remote.internalAntRunner. Program will exit."
为了用JDK1.8编译我的代码,我在eclipse中添加了外部ANT,它运行得很好。但使用JDK1.6和相同的ANT版本编译代码是不起作用的。
解决方案:我通过选择";恢复默认条目"(ANT-->运行方式-->外部工具配置-->类路径")之后,带有JDK 1.6的ANT就可以正常工作了。
当我在eclipse中添加外部ANT时,上面的错误就发生了,它与JDK1.8的使用兼容。Ant使用JDK 1.8,而1.6 JDK则不使用Ant。一旦我将ANT类路径设置恢复到其默认eclipse值(JDK1.6兼容),上述错误就消失了。