public void run() throws Exception {
		
		// Eclipse doesn't support System.console()
		BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
		
		// convert list of loaded apps into a prompt string
		List<String> appList = NetBase.theNetBase().loadedAppNames();
		StringBuilder sb = new StringBuilder().append("\nLoaded applications:\n");
		for ( int i=0; i<appList.size(); i++) {
			sb.append( String.format("  * %s\n", appList.get(i)));
		}

		// sit in loop reading user input and executing apps
		while (true) {
			System.out.print("Select application (empty for list, exit to exit)> ");
			String appName = console.readLine();
			if ( appName == null ) break; // EOF reached (via ^d in Eclipse, at least)
			if ( appName.isEmpty() ) {
				System.out.println(sb.toString());
				continue;
			}
			if ( appName.equals("exit") ) break;
			try {
				NetBase.theNetBase().startApp(appName);
			} catch (Exception e) {
				System.out.println("App " + appName + " threw uncaught exception: " + e.getMessage());
			}
		}
	}