【问题标题】:IntelliJ: Scala worksheet don't pick up code changes without restartIntelliJ:Scala 工作表不会在不重新启动的情况下拾取代码更改
【发布时间】:2018-01-02 07:40:09
【问题描述】:

如果我在 Intellij 的 Scala 工作表顶部导入了对象的内容,当我向对象添加新内容时,它们在工作表中找不到。即使在我构建项目并重新评估工作表之后,它也找不到新属性。自动完成工作。如果我退出并重新启动 IntelliJ,它就可以工作。

这是错误:

java.lang.NoSuchMethodError: Arith$.foo()Ljava/lang/String;
    at #worksheet#.get$$instance$$res6(ArithWS.sc:15)
    at A$A1$.main(ArithWS.sc:41)
    at #worksheet#.#worksheet#(ArithWS.sc)

奇怪的是,它似乎可以编译,但在运行时失败。这是一个普通的 SBT 项目。 IntelliJ 2017.2.5,斯卡拉 2.12.3。选择“制作项目”复选框没有帮助。实际上,没有任何复选框的组合可以使它起作用。重建项目或工作表也无济于事。只有重新启动 IntelliJ 才能让工作表获取新代码。

Arith.scala 中的示例项目代码:

object Arith {
  val foo = "foo"
}

示例工作表 ArithWS.sc:

import Arith._

foo

【问题讨论】:

    标签: scala intellij-idea


    【解决方案1】:

    这似乎可以解决它,尽管我希望喜欢知道为什么默认设置被破坏,或者这个未记录的设置做了什么:转到 文件 -> 设置 -> 语言和框架-> Scala -> 工作表(选项卡) 。取消选择“在编译器进程中运行工作表”。

    【讨论】:

    • 我仍然必须单独重新编译我导入的源代码更改,但在遵循上述建议后,工作表重新运行会获取最新代码。谢谢。
    • stackoverflow.com/questions/53721579/… 在 Linux 中出现错误:找不到源文件“/home/username”
    • 当我关闭“在编译器进程中运行工作表”时,我会收到“错误:找不到源文件'C:\WINDOWS\system32'”
    【解决方案2】:

    如果其他人最终像我一样感到困惑并发现上述问题并不能解决问题,请尝试取消选中“首选项”>“构建、执行、部署”>“编译器”中的“使用外部编译服务器进行 scala”复选框Scala Compiler > Scala Compile Server(您也可以从 Intellij 右下角的类似速度计的图标进入此视图)。

    结合 Scala 工作表视图上的“制作项目”,这似乎可以确保更改被正确编译并在工作表中可见。

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多