2014-04-04 8 views
8

Cercando di giocare con scala in IDEA con scala plug-in:IDEA Scala: Impossibile trovare la directory di output

mio oggetto HelloWorld:

object HelloWorld { 

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

} 

E volte io ottenere errore successivo quando si preme ' Esegui HelloWorld 'dal menu di scelta rapida.

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) 

Questo errore molto fastidioso perché per risolvere il problema ho bisogno di riavviare IDEA, pulito/compilare il mio progetto, aggiungere/rimuovere configurazione di lancio paio di volte. Anche la riga di comando dall'errore in modo corretto può essere eseguita manualmente dal terminale.

+1

Penso che questo sia un problema paradisiaco. La cosa migliore da fare è pubblicare sul sito web intellij bug tracker. –

risposta

7

Guardando il commento di errore:

Impossibile trovare una directory di output per:
/Users/nomeutente/lavoro /src/sandbox/src/HelloWorld.scala

in

  • /Users/nomeutente/lavoro/src/sandbox/src
  • /Users/nomeutente/lavoro/src/sandbox/out/produzione/sandbox

seconda dell'ambiente si sta eseguendo l'IntelliJ nei/inferiore questioni differenza maiuscole. Assicurati che la tua proprietà user.home sia impostata correttamente.

0

La risposta di Norbert Radyk non si applicava a me. I percorsi erano corretti nel mio caso. Ho dovuto cancellare la cartella target/scala-2.11/test-classes per costringere Intellij a ricompilare la classe di test. Un po 'di dolore però perché funzionerà finché non dovrò modificare il test stesso. Quindi non è davvero una soluzione, ma un po 'un trucco nel caso in cui hai davvero bisogno di eseguire il debug di un test.

Problemi correlati