IntelliJ 在打字过程中编译时将 .class 文件放在哪里

2023-11-30

IntelliJ 是否一直在编译,因为当出现错误时它会用红色波浪线告诉我? (除了自动完成功能之外)或者它正在执行某种伪编译?

如果它正在进行合法编译,那么它会将这些已编译的类放在哪里?我想将我的 JRebel 指向该目录而不是单个模块目标文件夹。


Meo 是对的,根据我在开发自定义语言插件时了解到的情况,IntelliJ 在您明确创建项目之前不会编译任何内容。当您键入时,其词法分析器/解析器会检测到任何无效的标记或代码构造。同时,它维护项目中每个类和方法及其依赖项的索引,以及它们的签名等。

停止打字后,您会在右侧排水沟的顶部看到一个小彩色眼睛。它表明 IDE 正在运行“注释器”和“代码检查”。他们能够根据当前索引和文件的当前状态(导入、声明等)判断类、方法和变量是否有效。对于未使用的变量、方法调用中的无效参数等也是如此。

Pros:

  • 注释器直接在他们所谓的 PSI 树上工作,这基本上是代表当前文件的增强 AST
  • 它可能比每次编译更快(它使用索引并且不需要重新编译每个依赖类)
  • 注释者可以检测事物javac不关心,例如潜在的错误(例如使用=代替== in a while健康)状况)

Cons:

  • 这是一项艰巨的工作,基本上他们需要重写逻辑才能找到每个错误javac可以产生(这就是为什么你可以在他们的 bugtracker 上找到许多标记为“的问题”好的代码是红色的”或“坏代码是绿色的”,这意味着它们检测到的内容与编译器输出的内容之间存在差异)

TL;DR:它不会产生任何.class在你完成你的项目之前,一切都是“手工”完成的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IntelliJ 在打字过程中编译时将 .class 文件放在哪里 的相关文章

随机推荐