00001 package edu.stanford.hci.r3.actions.types; 00002 00003 import java.lang.reflect.InvocationTargetException; 00004 import java.lang.reflect.Method; 00005 00006 import edu.stanford.hci.r3.actions.R3Action; 00007 00019 public class RunJavaAppAction implements R3Action { 00020 00021 private Class<?> classToRun; 00022 00026 public RunJavaAppAction(Class classWithMainFunction) { 00027 classToRun = classWithMainFunction; 00028 } 00029 00035 public void invoke() { 00036 try { 00037 Method method = classToRun.getMethod("main", new Class[] { String[].class }); 00038 method.invoke(null, new Object[] { new String[] {} }); 00039 } catch (SecurityException e) { 00040 e.printStackTrace(); 00041 } catch (NoSuchMethodException e) { 00042 e.printStackTrace(); 00043 } catch (IllegalArgumentException e) { 00044 e.printStackTrace(); 00045 } catch (IllegalAccessException e) { 00046 e.printStackTrace(); 00047 } catch (InvocationTargetException e) { 00048 e.printStackTrace(); 00049 } 00050 } 00051 00052 }