diff options
author | Lex Spoon <lex@lexspoon.org> | 2006-06-16 12:11:04 +0000 |
---|---|---|
committer | Lex Spoon <lex@lexspoon.org> | 2006-06-16 12:11:04 +0000 |
commit | 8599693b3c95d0d6687398a3f8d5e7203cc74864 (patch) | |
tree | c22f61a83c1fe0ef31bb01d60795b5b9ce8de9f4 /src | |
parent | 975a608b36a74200d7f0a05844c1284a5b3f0450 (diff) | |
download | scala-8599693b3c95d0d6687398a3f8d5e7203cc74864.tar.gz scala-8599693b3c95d0d6687398a3f8d5e7203cc74864.tar.bz2 scala-8599693b3c95d0d6687398a3f8d5e7203cc74864.zip |
use getMethod("main",blahblah) instead of getMe...
use getMethod("main",blahblah) instead of getMethods().find(blahblah)
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/ObjectRunner.scala | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/src/compiler/scala/tools/nsc/ObjectRunner.scala b/src/compiler/scala/tools/nsc/ObjectRunner.scala index d2202f5046..d64ad2947d 100644 --- a/src/compiler/scala/tools/nsc/ObjectRunner.scala +++ b/src/compiler/scala/tools/nsc/ObjectRunner.scala @@ -13,16 +13,6 @@ 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]] - meth.getName == "main" && - Modifier.isStatic(meth.getModifiers) && - paramsOK(meth.getParameterTypes) - } - def run( classpath: List[String], objectName: String, @@ -32,17 +22,13 @@ object ObjectRunner { 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 None => - throw new Error("no main method in object " + objectName) - } + val method = clsToRun.getMethod("main", List(classOf[Array[String]]).toArray) + val res = method.invoke(null, List(arguments.toArray).toArray) () } catch { case e: Exception => - // ClassNotFoundException, InvocationTargetException, .. + // ClassNotFoundException, InvocationTargetException, NoSuchMethod .. Console.println(e) exit(1) } |