编译器镜像中没有找到对象scala – 以编程方式运行Scala编译器
发布时间:2020-12-16 19:08:48 所属栏目:安全 来源:网络整理
导读:运行w /一个简单的SBT项目w / Java 7(下面的详细信息)和调用sbt在命令行运行(没有IntelliJ或任何东西) 资源 import scala.tools.nsc.{ Global,Settings }object Playground extends App { val compiler = new Global(new Settings()) val testFiles = List("
运行w /一个简单的SBT项目w /
Java 7(下面的详细信息)和调用sbt在命令行运行(没有IntelliJ或任何东西)
资源 import scala.tools.nsc.{ Global,Settings } object Playground extends App { val compiler = new Global(new Settings()) val testFiles = List("Test.scala") val runner = new compiler.Run() val result = runner.compile(testFiles) println(result) } 错误 error: error while loading Object,Missing dependency 'object scala in compiler mirror',required by /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre/lib/rt.jar(java/lang/Object.class) [error] (run-main-0) scala.reflect.internal.MissingRequirementError: object scala in compiler mirror not found. scala.reflect.internal.MissingRequirementError: object scala in compiler mirror not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:53) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66) at scala.reflect.internal.Mirrors$RootsBase.getPackage(Mirrors.scala:173) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackage$lzycompute(Definitions.scala:161) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackage(Definitions.scala:161) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackageClass$lzycompute(Definitions.scala:162) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackageClass(Definitions.scala:162) at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1388) at scala.tools.nsc.Global$Run.<init>(Global.scala:1053) <etc...> build.sbt scalaVersion := "2.11.4" val scalaV = "2.11.4" libraryDependencies ++= Seq( "org.scala-lang" % "scala-compiler" % scalaV,"org.scala-lang" % "scala-library" % scalaV,"org.scala-lang" % "scala-reflect" % scalaV ) java的 $java -version java version "1.7.0_60-ea" Java(TM) SE Runtime Environment (build 1.7.0_60-ea-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09,mixed mode) 解决方法
这是你必须说的:
trait Probe object Playground extends App { //val compiler = new Global(new Settings()) val s = new Settings() s.embeddedDefaults[Probe] val compiler = new Global(s) val testFiles = List("Test.scala") val runner = new compiler.Run() val result = runner.compile(testFiles) println(result) } 这花了我几分钟的时间.该方法名称“embeddedDefaults”与sbt中的任何一个都是隐藏的. 对MutableSettings的评论(这表明副作用): /** Initializes these settings for embedded use by type `T`. * The class loader defining `T` should provide resources `app.class.path` * and `boot.class.path`. These resources should contain the application * and boot classpaths in the same form as would be passed on the command line.*/ 缩进与源代码一样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |