reflectiverunner.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 50 行

SCALA
50
字号
/* NEST (New Scala Test) * Copyright 2007-2008 LAMP/EPFL * @author Philipp Haller */// $Id: ReflectiveRunner.scala 14415 2008-03-19 00:53:09Z mihaylov $package scala.tools.partest.nest/* This class is used to load an instance of DirectRunner using * a custom class loader. * The purpose is to "auto-detect" a good classpath for the * rest of the classes (Worker, CompileManager etc.), so that * the main NestRunner can be started merely by putting its * class on the classpath (ideally). */class ReflectiveRunner {  // TODO: we might also use fileManager.CLASSPATH  // to use the same classes as used by `scala` that  // was used to start the runner.    val fileManager = new ConsoleFileManager  import fileManager.{latestCompFile, latestLibFile, latestActFile,                      latestPartestFile, latestFjbgFile}  val sepUrls = Array(latestCompFile.toURL, latestLibFile.toURL,                      latestActFile.toURL, latestPartestFile.toURL,                      latestFjbgFile.toURL)  val sepLoader = new java.net.URLClassLoader(sepUrls, null)  if (fileManager.debug) {    println("Loading classes from:")    sepUrls foreach { url => println(url) }  }  val sepRunnerClass =    sepLoader.loadClass("scala.tools.partest.nest.ConsoleRunner")  val sepRunner = sepRunnerClass.newInstance()  val stringClass = Class.forName("java.lang.String")  val sepMainMethod =    sepRunnerClass.getMethod("main", Array(stringClass))  def main(args: String) {    val cargs: Array[AnyRef] = Array(args)    sepMainMethod.invoke(sepRunner, cargs)  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?