Tôi có một vấn đề với scala.tools.sbtScala SBT: scala.tools.nsc không chạy
tập tin scala
Ở đây tôi sử dụng chức năng phân tích cú pháp để làm cho cây cú pháp trừu tượng của đang 2 + 3
cấu hình
import scala.tools.nsc._
object Main extends App {
var i = new Interpreter
println(i.parse("2 + 3"))
}
SBT
name := "scalaSample"
version := "1.0-SNAPSHOT"
scalaVersion := "2.9.1"
libraryDependencies += "org.scalatest" %% "scalatest" % "1.7.1" % "test"
libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.9.1"
Lỗi
Không thể khởi biên dịch: không tìm thấy đối tượng scala. ** Lưu ý rằng khi 2.8 scala không giả sử sử dụng classpath java. ** Đối với hành vi cũ vượt qua -usejavacp để scala, hoặc nếu sử dụng một cài đặt ** đối tượng programatically, settings.usejavacp.value = true.
[lỗi] (chạy chính) java.lang.NullPointerException java.lang.NullPointerException tại scala.tools.nsc.CompilationUnits $ CompilationUnit. (CompilationUnits.scala: 16) tại scala.tools.nsc.interpreter.ExprTyper $ codeParser $ .applyRule (ExprTyper.scala: 22) tại scala.tools.nsc.interpreter.ExprTyper $ codeParser $ .stmts (ExprTyper .scala: 36) tại scala.tools.nsc.interpreter.ExprTyper $$ anonfun $ parse $ 2.apply (ExprTyper.scala: 47) tại scala.tools.nsc.interpreter.ExprTyper $$ anonfun $ parse $ 2 .apply (ExprTyper.scala: 46) tại scala.tools.nsc.reporters.Reporter.withIncompleteHandler (Reporter.scala: 46) tại scala.tools.nsc.interpreter.ExprTyper $ class.parse (ExprTyper.scala : 46) tại scala.tools.nsc.interpreter.IMain $ exprTyper $ .parse (IMain.scala: 1012) tại scala.tools.nsc.interpreter.IMain.parse (IMain.scala: 1013) tại eu.semantiq.scalaToJS.Main $ delayInit $ body.apply (Chính. scala: 7) tại scala.Function0 $ class.apply $ mcV $ sp (Function0.scala: 34) tại scala.runtime.AbstractFunction0.apply $ mcV $ sp (AbstractFunction0.scala: 12) tại scala.App $ $ anonfun $ chính $ 1.apply (App.scala: 60) tại scala.App $$ anonfun $ chính $ 1.apply (App.scala: 60) tại scala.collection.LinearSeqOptimized $ class.foreach (LinearSeqOptimized.scala: 59) tại scala.collection.immutable.List.foreach (List.scala: 45) tại scala.collection.generic.TraversableForwarder $ class.foreach (TraversableForwarder.scala: 30) tại scala.App $ class.main (App.scala: 60) lúc eu.semantiq.scalaToJS.Main $ .main (Main.scala: 5) tại eu.semantiq.scalaToJS.Main.main (Main.scala) tại sun.reflect.NativeMethodAccessorImpl.invoke0 (Phương pháp gốc) tại mặt trời .reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) tại sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) tại java.lang.reflect.Method.invoke (Method.java:616) java .lang.RuntimeException: Mã thoát Nonzero: 1 tại scala.sys.package $ .error (gói.scala: 27)
Trong scala REPL mọi thứ hoạt động
Chào mừng bạn đến Scala phiên bản 2.9.0.1 (OpenJDK 64-Bit Server VM, Java 1.6.0_23 ). Nhập các biểu thức để chúng được đánh giá. Loại: trợ giúp để biết thêm thông tin.
scala>nhập khẩu scala.tools.nsc._
nhập khẩu scala.tools.nsc._
scala>var i = new Interpreter
cảnh báo: đã có 4 phản đối cảnh báo; chạy lại với -deprecation để biết chi tiết cảnh báo: đã có 1 cảnh báo ngừng sử dụng; tái chạy với -deprecation để biết chi tiết
i: scala.tools.nsc.Interpreter = [email protected]
scala>println (i.parse ("2 + 3"))
Một số (Danh sách (2. $ cộng (3)))
tôi cảm thấy thực sự xin lỗi cho tiếng Anh xấu của tôi