2014-04-04 18 views
8

Đang cố gắng để chơi với scala trong IDEA với scala plug-in:IDEA Scala: Không thể tìm thấy thư mục đầu ra

đối tượng HelloWorld của tôi:

object HelloWorld { 

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

} 

đôi khi tôi nhận được lỗi sau khi nhấn ' Chạy HelloWorld 'từ trình đơn ngữ cảnh.

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) 

Lỗi này rất khó chịu vì sửa chữa nó, tôi cần phải khởi động lại IDEA, dọn dẹp/biên dịch dự án, thêm/xóa cấu hình khởi chạy vài lần. Ngoài ra dòng lệnh từ lỗi đúng cách có thể được thực thi từ thiết bị đầu cuối theo cách thủ công.

+1

Tôi nghĩ đây là một vấn đề thiên đường. Điều tốt nhất cần làm là đăng trên trang web theo dõi lỗi intellij. –

Trả lời

7

Nhìn vào những nhận xét lỗi:

không thể tìm thấy một thư mục đầu ra cho:
/Users/tên người dùng/làm việc /src/sandbox/src/HelloWorld.scala

trong

  • /Người dùng/tên người dùng/làm việc/src/sandbox/src
  • /Users/tên người dùng/việc/src/sandbox ra/vào/sản xuất/sandbox

Tùy thuộc vào môi trường bạn đang chạy IntelliJ trong/thấp hơn trường hợp vấn đề chênh lệch trên. Vui lòng đảm bảo thuộc tính user.home của bạn được đặt chính xác.

0

Trả lời từ Norbert Radyk không áp dụng cho tôi. Đường dẫn chính xác trong trường hợp của tôi. Tôi phải xóa target/scala-2.11/test-classes thư mục để buộc Intellij phải biên dịch lại lớp kiểm tra. Một chút đau đớn vì nó sẽ hoạt động miễn là tôi không phải sửa đổi bản thân bài kiểm tra. Vì vậy, không thực sự là một giải pháp nhưng một chút của một hack trong trường hợp bạn thực sự cần phải gỡ lỗi một thử nghiệm.

Các vấn đề liên quan