的IntelliJ。调试程序,即使它没有编译

时间:2011-09-14 14:51:40

标签: java intellij-idea

我在IntelliJ中有一个编译的Java项目,现在我正在慢慢改变。

有没有办法让IntelliJ运行项目,即使代码的某些部分仍然无法编译?如果是这样,怎么样?

为什么我需要这个,你问?看到这张票: IDEA-61945运行和调试命令应忽略与正在运行的主程序无关的编译错误。 http://youtrack.jetbrains.net/issue/IDEA-61945?query=it#tab=Comments

请不要回答这篇帖子质疑我是否应该或者我不需要运行项目,即使它没有编译。请。

如果在IntelliJ中不可能,是否可以在maven中使用?怎么样?

10 个答案:

答案 0 :(得分:22)

在Intellij 12中,您还有以下选项(我个人认为最好的选项):

  • 转到启动器的编辑配置
  • 转到启动前部分
  • 如果列表中有'Make':将其删除
  • 添加'制作,无错误检查'

现在,当你运行时,make仍然会自动完成,但即使编译错误也会继续运行。

关于上述辩论;我认为能够运行编译的一部分代码是完全合理的,即使代码的另一部分不是这样;例如如果代码的其他部分属于项目中的模块,但在运行时不涉及。

答案 1 :(得分:6)

我今天在工作中遇到了同样的问题。在此之前,我可能很快就会抓住这样一句话:“你为什么要这样做呢?”事实证明,Eclipse可以让你做到这一点,如果你开始与依赖于这个功能的其他开发人员同时工作(也就是说,签入不能编译的代码),那么能够做到这一点很方便。 IDEA!

幸运的是我们IDEA用户,你可以。按照FAQ for Eclipse Users中的这些说明进行操作,您就可以了:

  

为了能够运行有错误的代码,您可以选择Eclipse   编译器在Settings对话框,Compiler,Java Compiler中添加   -proceedOnError选项,用于编译器的Additional命令行参数。

唯一蹩脚的是,它不像Eclipse那样无缝。首先,您必须在运行之前取消选项Make,因为如果make失败,IDEA将无法运行。然后,您必须记住在运行之前构建。但是,有了这些警告,你应该能够完成你所追求的目标。

答案 2 :(得分:3)

Stijn Geukens的回答是正确的,但可以改进。 在Intellij Idea版本12中,它可以替换为“Make,no error check”,而不是删除“Make”规则。这样项目将被重建(编译器将尝试这样做),但它将独立于编译结果运行程序。

答案 3 :(得分:2)

如果您只想调试一个部件,那么您可以围绕它进行单元测试。如果您不使用不编译的类,那么您仍然可以调试与单元测试相关的代码。

答案 4 :(得分:1)

如果出现编译错误,您可以从编译中排除特定文件。

  • 转到“消息”窗口(如果它不可见:查看 - >工具窗口 - >消息)
  • 右键单击问题文件
  • 从编译中排除

答案 5 :(得分:1)

至少在Intellij 12中你可以做到这一点。

  • 首先尝试编译项目,包括损坏的类。
  • 然后在Messages视图中,包含所有编译错误:
    • 右键单击要排除的课程
    • 点击“从编译中排除”

有关如何重新加入的信息,请参阅this question

答案 6 :(得分:1)

对于 Intellij 2017.3.1 ,我的配置如下:

  1. 使用 Eclipse编译器:设置 - >构建,执行,部署 - >编译器 - > Java编译器 - >使用编译器:Eclipse
  2. 选择" 继续处理错误"
  3. 在启动之前编辑所需的配置默认值(我将其用于JUnit)构建,无错误检查Check this screenshot
  4. 在运行配置时,Intellij不要打开包含错误的类的附加步骤。在“设置”中取消选择在编辑器中自动显示第一个错误 - >构建,执行,部署 - >编译器
  5. PS:此配置并非适用于所有用途。它只适用于修复由于实现代码更改而导致失败的单元测试。当您回到实现功能时,禁用此功能会更有用,因为它会让您运行带有错误的实现代码,并且不会跳转到编译错误。您需要来回更改Eclipse编译器和Javac,以获得最佳结果。

答案 7 :(得分:0)

哇,自从我进入IntelliJ以来已经有一段时间了,我非常想念它!从我的回忆中,您应该能够右键单击模块中的main方法并直接运行它,只要模块中的其余文件进行编译即可。我认为同一项目中的第二个模块有错误并不重要。这不适合你吗?

答案 8 :(得分:0)

更新版本2017-2.5社区,因为菜单选项略有不同

导航至:

运行>编辑配置

在“运行/调试”配置窗口底部附近寻找

“启动前:激活工具窗口”

此标题下的字段列出了您当前的构建配置设置。

使用+和-符号以添加和删除构建首选项。

完成后

选择应用,然后确定

就这样!

答案 9 :(得分:-6)

我认为它根本不可能。如何运行不能编译的东西?这就像驾驶一辆没有放在一起的汽车。您可以注释掉不编译的文件,以便项目编译....

编辑 - 或者您可以让Intellij不将文件计为源

右键点击您的项目 - >打开模块设置 - >选择你的模块 - >选择文件 - >排除