2014-04-04 16 views
8

試圖在IDEA使用Scala播放使用Scala插件:IDEA斯卡拉:找不到輸出目錄

我的HelloWorld類:

object HelloWorld { 

    def main(args: Array[String]) { 
    println("Hello") 
    } 

} 

而且有時我得到下一個錯誤按'時從上下文菜單運行HelloWorld'。

scalac: Error: Could not find an output directory for /Users/username/Work/src/sandbox/src/HelloWorld.scala in List((/Users/username/work/src/sandbox/src,/Users/username/work/src/sandbox/out/production/sandbox)) 
scala.reflect.internal.FatalError: Could not find an output directory for /Users/username/Work/src/sandbox/src/HelloWorld.scala in List((/Users/username 
/work/src/sandbox/src,/Users/username/work/src/sandbox/out/production/sandbox)) 
at scala.tools.nsc.settings.MutableSettings$OutputDirs.outputDirFor(MutableSettings.scala:303) 
at scala.tools.nsc.backend.jvm.BytecodeWriters$class.outputDirectory(BytecodeWriters.scala:26) 
at scala.tools.nsc.backend.jvm.BytecodeWriters$class.scala$tools$nsc$backend$jvm$BytecodeWriters$$getFile(BytecodeWriters.scala:37) 
at scala.tools.nsc.backend.jvm.BytecodeWriters$ClassBytecodeWriter$class.writeClass(BytecodeWriters.scala:89) 
at scala.tools.nsc.backend.jvm.GenASM$AsmPhase$$anon$4.writeClass(GenASM.scala:67) 
at scala.tools.nsc.backend.jvm.GenASM$JBuilder.writeIfNotTooBig(GenASM.scala:458) 
at scala.tools.nsc.backend.jvm.GenASM$JMirrorBuilder.genMirrorClass(GenASM.scala:2954) 
at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.run(GenASM.scala:113) 
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583) 
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557) 
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553) 
at scala.tools.nsc.Global$Run.compile(Global.scala:1662) 
at xsbt.CachedCompiler0.run(CompilerInterface.scala:126) 
at xsbt.CachedCompiler0.run(CompilerInterface.scala:102) 
at xsbt.CompilerInterface.run(CompilerInterface.scala:27) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:102) 
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48) 
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41) 
at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:26) 
at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:25) 
at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:58) 
at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:21) 
at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala) 
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319) 

這個錯誤很煩人,因爲修復它我需要重新啓動IDEA,清理/編譯我的項目,添加/刪除啓動配置幾次。也可以手動從終端執行錯誤的命令行。

+1

我認爲這是一個天堂問題。最好的辦法是在intellij bug跟蹤網站上發佈。 –

回答

7

望着錯誤註釋:

找不到輸出目錄:
/用戶/用戶名/ 工作 /src/sandbox/src/HelloWorld.scala

  • /用戶/用戶名/ 工作/src目錄/沙/ src目錄
  • /用戶/用戶名/ 工作/src目錄/沙/出/生產/沙

根據環境的不同,你正在運行的的IntelliJ在大/小寫區別事項。請確保你的user.home屬性設置正確。

0

從諾伯特Radyk答案不適用於我。在我的情況下,路徑是正確的。我不得不刪除target/scala-2.11/test-classes文件夾以強制Intellij重新編譯測試類。有點痛苦,因爲只要我不必修改測試本身就可以工作。所以,如果你確實需要調試一個測試,那麼這不是一個真正的解決方案,而是一種黑客攻擊。