为什么我可以在Eclipse和Maven中清理后运行我的程序?

时间:2012-08-30 14:40:28

标签: java eclipse maven

我无法理解为什么在这两个步骤之后Eclipse

  1. Run as - > Maven clean
  2. Project - > clean...
  3. 我仍然可以使用带有白色箭头的绿色图标来运行我的程序吗?

    我认为清理后没有.class个文件。我期待像ClassNotFound这样的例外,但事情并非如此。

    您知道如何在Eclipse中正确清理项目吗?

4 个答案:

答案 0 :(得分:3)

eclipse中的清洁与maven中的清洁不同。 Maven的干净确实删除了所有已编译的资源(类等)。 eclipse中的清理项目是一种mvn clean compile,即它会删除*class个文件并再次编译所有*.java个文件。

答案 1 :(得分:1)

在启动应用程序的代码时,您可以添加:

System.out.println("Classpath=" + System.getProperty("java.class.path"));

你可以分析它(nornally我使用notepaddpp通过类路径分隔符将其拆分并排序) - 也许它指的是maven repo中包含类的jar?有时类文件夹首先在类路径上,因此在jars之前,即使在jar中有相同的类。

答案 2 :(得分:1)

我刚用Maven中的Eclipse个项目检查了这个现象,这就是我观察到的。顺便说一下,不要相信您在Package View中看到的内容,请使用您的文件系统资源管理器。

以 - >运行Maven clean:删除目标文件夹 项目 - > clean ...:创建包含空子文件夹“target”和“classes”的test-classes文件夹。在Eclipse's Package Explorer视图中,我看到一个空的目标文件夹。

此时我会说清除MavenEclipse项目的正确方法就是“运行为 - > Maven干净。

现在解决清理后程序运行的原因。我在项目中运行程序后,Eclipse编译并使用* .class文件和资源填充“target/classes”和“target/test-classes”文件夹。在Eclipse's Package Explorer视图中,我仍然看到一个空的目标文件夹。

解决这个问题的技巧是使用系统文件资源管理器查看项目目录和子目录,而不仅仅是Eclipse's Package ViewProject View

答案 3 :(得分:0)

这可能是因为eclipse会在你运行它时自动构建你的项目