【问题标题】:IntelliJ doesn't detect Java errorsIntelliJ 未检测到 Java 错误
【发布时间】:2014-07-01 16:10:24
【问题描述】:

我正在将 IntelliJ IDEA13 用于使用 hibernate、struts 等的 MVC 项目,但我的 Intellij 在我编写代码时没有检测到任何错误,例如当我制作和对象需要特定导入时,即使我用没有以红色显示任何错误的代码做愚蠢的事情。我正在用 ant 而不是 IntelliJ 编译文件,但是一个 IDE 它对于导入和自动完成非常有用,我不知道为什么会这样。有什么想法吗?

编辑:这只发生在这个 MVC 项目(> 2.000 个文件)中,在一个普通的 Java 项目中一切都很好。

我有 1 个名为“project1”的文件夹,在该文件夹内我还有其他 2 个文件夹:common 有我需要的所有 jar,impl 有项目的所有文件。

所以我将所有这些都放入 IntelliJ 的方法是创建一个名为“project1”的新项目,以便 IntelliJ 获取所有文件夹和文件。

可能是因为这个,配置有问题。

只是一个简单的例子,如果我打电话给Query q = createQuery("select * c.name from c in class " + Category.class.getName() + " order by c.name desc"); 我没有 Query 类的导入,因此 IntelliJ 应该告诉我导入该类并使 Query 变为红色,但它没有,即使我在 Query 中单击 alt+enter 它也没有显示导入选项那个类,我的 IntelliJ 不知道那是代码中的错误。

EDIT2:我制作了一个新模块,现在似乎一切正常。我在模块中有错误的源文件夹。

【问题讨论】:

  • 您需要更具体。为什么不附上遇到问题的文件的屏幕截图? InteliJ 将自行编译您提供给它的文件并显示问题。我猜是配置问题。
  • 这很奇怪。你能给我们一个对你来说失败的 hello world 例子吗?另外,尝试重建索引。
  • 我需要有 10 个声望才能发布图片。我会编辑并更具体。
  • 好了,你现在有 11 个了!
  • 你不能将你的源文件夹设置为项目根目录——它只会让 intellij 更加混乱并导致坏事。您的 java 文件和它们所在的包(目录)应该在一个单独的文件夹下,并且应该标记为源 - 它通常也在项目根目录下。文件的编译版本通常位于名为 target 的目录中,但名称并不重要,它也应该位于项目根目录下,并且应该告诉 IntelliJ 构建到那里。

标签: java intellij-idea intellij-13


【解决方案1】:

就我而言,我在 IntelliJ 中关闭错误突出显示是错误的。

在代码编辑器右栏的顶部,OFF => Highlight: All Problems

【讨论】:

    【解决方案2】:

    当您打开一个源文件时,它的图标是否有一个带有“C”的蓝色圆圈,带有“I”的绿色圆圈等等......?这表明该文件被识别为源代码文件。 Javascript 文件应显示“JS”图标。

    您可以转到文件 > 项目结构 > 模块。在那里,确保您有一个 Java 模块,其中包含包含您的源代码的文件夹。

    您可能需要执行 File > New Module 并为您的 project1 文件夹创建它。

    编辑

    如果您愿意,可以使用 Maven;一旦你创建了 pom.xml 文件,你可以删除 IntelliJ 的项目文件,然后执行 File > Import Project。然后就选择了 pom.xml 文件。 IntelliJ 将基于此设置项目和模块。 Maven 的约定优于配置的方法也很好(一切都进入标准化位置)。

    【讨论】:

    • 当它没有检测到错误时,java文件中的图标是白色的,带有一个红色的J。当它检测到错误时,java文件是蓝色的,带有一个蓝色的圆圈。此外,它不允许我添加 Java 类,我必须添加-> 文件-> 并手动将其作为 .java。我会试试的。
    • 我不能移动任何已经存在的文件夹,只能创建新的文件夹和文件。就像我在上面所说的那样,我创建了一个“解决方案”,不是一个经典的解决方案,但至少我现在可以使用它。
    【解决方案3】:

    如果你使用 maven 而不是 ant,这些问题都解决了。这是 99% 的专业项目使用 maven 的主要原因之一。您必须告诉 intellij 您的源文件夹在哪里:在项目设置中选择您的源所在的文件夹,并将其标记为源,然后对您的测试执行相同的操作。您还必须分配一个 jdk。

    【讨论】:

    • 只是好奇... 99%?该号码的来源是什么?
    • @ElliottFrisch 99% 的人会相信任何事情
    • @jgitter 至少 60% 的时间。
    • 我已经尝试将 src 标记为根源,但它合并了很多文件夹(怪异!),并且破坏了我不应该动手的文件中的很多包导入,因为工作只是向系统添加一些要求。现在我再次尝试,我注意到即使项目通过合并文件夹变得怪异,现在它可以检测到 java 中的错误,所以我的解决方案是,在我编写代码时将 src 文件夹作为源根目录,并在我想要时取消标记它编译大声笑。不优雅,但至少我可以工作。
    • @ElliottFrisch 我喜欢那个网站
    猜你喜欢
    • 2016-02-20
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2014-04-27
    • 1970-01-01
    • 2014-02-08
    相关资源
    最近更新 更多