IntelliJ:Scala工作表不会重新启动代码更改

pos*_*ist 14 scala intellij-idea

如果我在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)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它似乎编译,但在运行时失败.这是一个正常的SBT项目.IntelliJ 2017.2.5,Scala 2.12.3.选择"生成项目"复选框没有帮助.实际上,没有复选框的组合使其工作.重建项目或工作表无论如何都无济于事.只有重新启动IntelliJ才能使工作表获取新代码.

Arith.scala中的示例代码:

object Arith {
  val foo = "foo"
}
Run Code Online (Sandbox Code Playgroud)

示例工作表ArithWS.sc:

import Arith._

foo
Run Code Online (Sandbox Code Playgroud)

pos*_*ist 32

这似乎解决它,虽然我也喜欢知道为什么默认设置被打破,或者什么这个无证设置不:进入文件- >设置- >语言与框架- >斯卡拉- >工作表(标签).取消选择"在编译器进程中运行工作表".

  • 当我关闭“在编译器进程中运行worsheet”时,我将收到“错误:找不到源文件'C:\ WINDOWS \ system32'” (2认同)