gpt4 book ai didi

java - IntelliJ 在输入期间编译时将 .class 文件放在哪里

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:27 26 4
gpt4 key购买 nike

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

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

最佳答案

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

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

优点:

  • 注释者直接在他们所谓的 PSI 树上工作,这基本上是代表您当前文件的增强型 AST
  • 每次都编译可能会更快(它使用了一个索引,不需要每个依赖类都重新编译)
  • 注释器可以检测事物 javac不关心,例如潜在的错误(例如在 = 条件下使用 == 而不是 while)

缺点:

  • 工作量太大了,基本上他们需要重写逻辑来找出 javac 的每一个错误可以产生(这就是为什么你可以在他们的错误跟踪器上找到许多标记为“good code is red”或“错误代码是绿色”的问题,这意味着他们检测到的内容与编译器输出的内容之间存在差异)

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

关于java - IntelliJ 在输入期间编译时将 .class 文件放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com