IntelliJ IDE首先编译另一个,如果没有任何错误,它将编译我单击的那个

时间:2018-10-08 08:56:52

标签: java intellij-idea intellij-14

我有一个名为“另一个”的项目。它具有2个彼此之间没有任何关系的程序。程序是“ abc.java”和“ def.java”。 这两个程序都用于打印“ Hello World”。 如果“ abc.java”没有任何错误,则即使“ def.java”没有任何错误,也只有编译器编译“ def.java”。 我必须为我制作的每个程序创建一个项目吗?我是编程新手。

def.java works fine here

when I removed a semicolon from abc.java, def.java stops working

Project structure

Module Structure

2 个答案:

答案 0 :(得分:2)

首先,在IntelliJ中,您不是根据“程序”来考虑,而是根据“项目”和“模块”来考虑。最基本的项目是单个模块所在的项目(例如,位于 D:\ projects \ MyProjects 的项目,其中一个模块位于 D:\ projects \ MyProjects )。

Structure 1

Structure 2

Project

我会想到哪里出错了:

  • 您包含abc.java的模块实际上不是模块。如果可以通过运行配置执行abc.java,则它应该是一个模块。
  • 您的构建设置有些错误。

编译器错误应阻止您执行程序,以防止应用程序出现异常。对我来说,如果其他模块有任何编译器错误,同时又成为执行模块的依赖项,则我将无法执行模块。但不确定是否有工具/插件导致此行为。

此外,您可以检查是否正确设置了模块。如果您的配置看起来类似,请检查上面的图像。

希望我能帮助您。如果没有,也许更新您的帖子,提供一些如我所示的设置和配置的屏幕截图。

答案 1 :(得分:0)

在执行其他任何操作之前,先获取您的定义和术语。

然后告诉别人你在做什么。

如上所述,IntelliJ(甚至所有现代IDE)都有模块和项目。当您在模块中执行目标时,如果需要,将构建整个模块。

  

如果“ abc.java”没有任何错误,那么即使“ def.java”没有任何错误,编译器也只能编译“ def.java”

这毫无意义。编译器将编译需要编译的任何内容。但是很可能您不是在谈论编译,而是单击“运行”按钮,它将运行配置为运行的所有内容。

如果您仅设置了1种运行配置,则总是按该按钮即可运行。 如果要在不创建显式运行配置的情况下运行某些程序,只需右键单击开源文件,然后选择“运行”。

这将导致模块中所有已更改的源代码都被编译,没有关于“尽管y没有错误却编译x”的巨大提示。 它还将尝试编译所有确实有错误并失败的东西。