无法开始编译:未为模块指定输出路径...

143

我有一个非常简单的Java + Gradle项目。它可以成功地构建。使用“gradle run”命令在Shell中也可以正常运行。但是,如果我尝试在IntelliJ中运行,就会出现以下错误:

Cannot start compilation: the output path is not specified for module "xyz" Specify the output path in Configure Project.

我的“编译器输出”设置为“继承项目编译输出路径”。我不想要自定义输出路径,无论那是什么,只需进行正常的Gradle构建和运行即可。


1
当从IntelliJ运行代码时,它将由IntelliJ编译和运行,而不是Gradle,并且将使用不同的构建输出目录。(Android则是另一回事。)但是,如果Gradle构建已正确导入,则应已配置IntelliJ输出目录。 - Peter Niederwieser
1
在下面的答案中,请注意给出您拥有用户写入权限的路径,否则它将无法工作。 - LoukasPap
15个回答

134
您需要在“项目编译输出”字段中定义一个路径(path),请按以下步骤操作:

文件(File) > 项目结构(Project Structure...) > 项目(Project) > 项目编译输出(Project compiler output)

该路径将用于存储所有项目编译结果(compilation results)


125

您只需前往模块设置>项目并指定“项目编译器输出”,并使您的模块继承自项目。(为此,请转到模块>路径>继承项目

这对我很有帮助。


30
不选择“继承项目”选项对我有用。 - Krish Munot
16
为什么它自己想不出来呢?大家都说IntelliJ比Eclipse更好,但根据我的经验,它不能自主思考。 - Andrew S
顺便提一句,在IntelliJ中,您需要执行文件>新建>模块...并创建一个Java模块,输出路径应默认设置。 - Woodchuck
1
如果这似乎不起作用,请不要忘记重新启动IntelliJ。对我有用。 - Cobie Fisher

23

我回答这个问题是为了以后再次在谷歌上搜索这个错误时能够找到解决方案。

将项目编译输出路径设置为项目文件夹路径/out。这是今天有效的解决方法。 IntelliJ文档让人觉得可以选择任何文件夹,但实际上并非如此。


12
在配置Gradle中的Idea插件时,您应该按以下方式定义输出目录。
idea{
    module{
        inheritOutputDirs = false
        outputDir = compileJava.destinationDir
        testOutputDir = compileTestJava.destinationDir
    }
}

看起来很棒。我应该把这个配置放在哪个文件里? - clay
你应该将它放到你项目的 build.gradle 文件中。 - lemiorhan

11
如果以上方法都不起作用,那么请尝试以下方法,这个方法对我有效。

进入文件>项目结构>项目,然后在项目编译器输出中点击三个点,提供你的项目名称(文件名)的路径,然后点击应用,再点击确定

9
你的回答中没有图片。 - James Whiteley
3
@priyanshu: 说真的,在你的帖子中没有图片。 - Pawan

5

打开 .iml 文件。 查找关键字 'NewModuleRootManager'。检查属性 'inherit-compiler-output' 是否设置为 true。如果没有设置为 true。

像这样:

component name="NewModuleRootManager" inherit-compiler-output="true">
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" />

4

3

在此之后

需要做两件事:

项目设置 > 项目编译输出 > 将其设置为 "项目路径(实际项目的路径)" + "\out".

项目设置 > 模块 > 路径 > 选择 "继承项目编译路径".

如果按钮不可用

您必须重新加载 IDEA.


1

如果在IntelliJ中创建项目时没有使用模板,也会遇到这个错误。

我安装了两个SDK:Amazon Corretto和Java版本11.0.4。当我遇到这个错误时,我会“更改SDK”,通常使用Corretto就可以正常工作。

要做到这一点,您需要单击File(在IntelliJ中)/ Project Structure / Project / Project SDK:从下拉列表中选择corretto(或在您的计算机上检查选项),如here所示。

希望这对您也有用。

最好的祝福, Constantin


1

更改编译输出路径:在文件 > 项目结构 > 模块 > 路径中更改编译输出路径

  • 勾选使用模块编译输出路径
  • 在输出路径中,将输出路径设置为 /target/classes。 例如 - S:\myProjectFolder\myProject\target\classes

这对我有用。不要忘记在完成后清理安装您的项目。 如果不起作用,请确保重新启动Intellij。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接