summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLex Spoon <lex@lexspoon.org>2006-06-16 12:11:04 +0000
committerLex Spoon <lex@lexspoon.org>2006-06-16 12:11:04 +0000
commit8599693b3c95d0d6687398a3f8d5e7203cc74864 (patch)
treec22f61a83c1fe0ef31bb01d60795b5b9ce8de9f4
parent975a608b36a74200d7f0a05844c1284a5b3f0450 (diff)
downloadscala-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)
-rw-r--r--src/compiler/scala/tools/nsc/ObjectRunner.scala20
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)
}