1 import java
.lang
.reflect
.*;
5 public static void main(String
[] args
)
8 /* Этап 1: Сохраняем список параметров */
11 /* Этап 2: Получаем имена связки Модуль.Команда */
12 if(args
== null || args
.length
< 1)
14 System
.err
.println("uses: Launcher Module[.Command] {Argumets}");
18 String moduleName
= args
[0];
19 String commandName
= "";
20 int i
= args
[0].indexOf('.');
23 moduleName
= args
[0].substring(0, i
);
24 commandName
= args
[0].substring(i
+ 1);
25 if(commandName
== "BEGIN")
31 /* Этап 3: Выполнение тела модуля и команды */
32 Class
<?
> module
= null;
34 Method command
= null;
37 module
= Class
.forName(moduleName
);
38 } catch(ClassNotFoundException e
) {
39 System
.err
.println("Module " + moduleName
+ " not found");
44 begin
= module
.getMethod("BEGIN");
45 } catch(Exception e
) {
46 System
.err
.println("Invalid module " + moduleName
);
52 } catch(IllegalAccessException e
) {
53 System
.err
.println("Invalid module " + moduleName
);
55 } catch(IllegalArgumentException e
) {
56 System
.err
.println("Invalid module " + moduleName
);
58 } catch(InvocationTargetException e
) {
59 throw e
.getTargetException();
68 command
= module
.getMethod(commandName
);
69 } catch(Exception e
) {
70 System
.err
.println("Invalid command " + moduleName
+ "." + commandName
);
76 } catch(IllegalAccessException e
) {
77 System
.err
.println("Invalid command " + moduleName
+ "." + commandName
);
79 } catch(IllegalArgumentException e
) {
80 System
.err
.println("Invalid command " + moduleName
+ "." + commandName
);
82 } catch(InvocationTargetException e
) {
83 throw e
.getTargetException();