Java Eclipse启动tomcat时出现编译错误

Java Eclipse启动tomcat时出现编译错误,java,eclipse,tomcat,Java,Eclipse,Tomcat,这是一个简单的问题:eclipse的默认行为是启动tomcat,即使项目有编译错误 我如何关闭这个“特性”,以便eclipse抱怨编译错误并阻止Tomcat启动?eclipse中似乎没有这样的设置。有一个“错误”选项卡,它将显示项目是否存在问题。这也会捕获编译错误。这可能会帮助您: 首选项->运行/调试->如果项目包含错误,则继续启动。默认设置为“提示”,因此您可能无意中将其更改为“始终”,或者Tomcat启动不遵守此设置。您无法在Eclipse中关闭此功能 这里有几点需要注意: Tomcat

这是一个简单的问题:eclipse的默认行为是启动tomcat,即使项目有编译错误


我如何关闭这个“特性”,以便eclipse抱怨编译错误并阻止Tomcat启动?

eclipse中似乎没有这样的设置。有一个“错误”选项卡,它将显示项目是否存在问题。这也会捕获编译错误。

这可能会帮助您:


首选项->运行/调试->如果项目包含错误,则继续启动。默认设置为“提示”,因此您可能无意中将其更改为“始终”,或者Tomcat启动不遵守此设置。

您无法在Eclipse中关闭此功能

这里有几点需要注意:

Tomcat是一个外部进程,您可以发布到它。所以,您真正想要的是当您有错误时不发布到它。JSP、XML文件或任何内容中都可能存在错误

Tomcat可能已经在运行了。在这种情况下你会怎么做?重新启动服务器?是否从tomcat配置中删除类文件?你不能总是这么做。例如,在windows下,如果文件处于打开状态,则无法删除.class文件

此外,当Eclipse编译java文件并发现编译错误时,它仍然会创建类文件,但类似于[*]:

public void foo() {
    throw new Error("Unresolved compilation problem: \n\tFOOBAR cannot be resolved\n");
}
这意味着类文件在技术上是有效的

当您运行外部进程时,您不再完全受Eclipse的控制,因此相同的规则不适用。不过,您可以随时要求提供新功能


[*]您可以使用或类似方法检查此问题。

这很有用。不幸的是,这进一步降低了我对eclipse的尊重。它自动地改变我的代码,而不告诉我,这样它就可以满足编译错误?实际上,我希望eclipse不会自动将我的更改发布到tomcat,除非我告诉它。一旦可以强制执行此行为,它就可以进行检查,并且只有在我没有编译问题、任何jsp问题或任何其他验证问题(xml等)时,它才能发布。我想知道为什么这不是默认行为,我猜设计师认为这是一个可以加快开发速度的伟大特性。