diff options
author | michelou <michelou@epfl.ch> | 2006-06-15 16:22:40 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2006-06-15 16:22:40 +0000 |
commit | 42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d (patch) | |
tree | e7dfd190ffee58e665170f290b3c1b86a358f044 /src/compiler/scala/tools/nsc/ObjectRunner.scala | |
parent | af68b2f871a990297c2168d3fe9219393915d463 (diff) | |
download | scala-42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d.tar.gz scala-42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d.tar.bz2 scala-42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d.zip |
added header and svn:keywords to files *Generic...
added header and svn:keywords to files *Generic*.scala
Diffstat (limited to 'src/compiler/scala/tools/nsc/ObjectRunner.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ObjectRunner.scala | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/ObjectRunner.scala b/src/compiler/scala/tools/nsc/ObjectRunner.scala index 5649fcbc05..cf636af7ab 100644 --- a/src/compiler/scala/tools/nsc/ObjectRunner.scala +++ b/src/compiler/scala/tools/nsc/ObjectRunner.scala @@ -1,15 +1,23 @@ +/* NSC -- new Scala compiler + * Copyright 2005-2006 LAMP/EPFL + * @author Lex Spoon + */ + +// $Id$ + package scala.tools.nsc -import java.net.URLClassLoader + import java.io.File import java.lang.reflect.{Method,Modifier} +import java.net.URLClassLoader /** An object that runs another object specified by name. */ object ObjectRunner { + def isMainMethod(meth: Method): Boolean = { - def paramsOK(params: Array[Class]): Boolean = { - (params.length == 1) && - (params(0) == classOf[Array[String]]) - } + def paramsOK(params: Array[Class]): Boolean = + params.length == 1 && + params(0) == classOf[Array[String]] meth.getName == "main" && Modifier.isStatic(meth.getModifiers) && paramsOK(meth.getParameterTypes) @@ -21,11 +29,12 @@ object ObjectRunner { arguments: Seq[String]): Unit = { val classpathURLs = classpath.map(s => new File(s).toURL).toArray - val mainLoader = new URLClassLoader(classpathURLs, null) + val mainLoader = new URLClassLoader(classpathURLs, null) val clsToRun = Class.forName(objectName, true, mainLoader) val method = clsToRun.getMethods.find(isMainMethod) match { - case Some(meth) => meth + case Some(meth) => + meth case None => { throw new Error("no main method in object " + objectName) } |