private InterfaceCommand getCommand(DebuggerVirtualMachine dvm) {
        UserInterface.print(": ");

        StringTokenizer tokenizer = null;
        InterfaceCommand command = null;
        try {
            tokenizer = new StringTokenizer((new BufferedReader(new InputStreamReader(
                                             System.in))).readLine());
        } catch (IOException ex) {
            UserInterface.println(ex);
        }
        if (!tokenizer.hasMoreTokens()) {
            return null;
        }
        String keyboardCommand = (tokenizer.nextToken()).toLowerCase();

        if ((command = CommandTable.get(keyboardCommand)) == null) {
            UserInterface.println("Invalid command.  Enter h for help.\n");
            return null;
        }

        List<String> argumentList = new ArrayList<String>();

        while (tokenizer.hasMoreTokens()) {
            argumentList.add(tokenizer.nextToken().toLowerCase());
        }

        if (!command.init(argumentList, dvm)) {
            return null;
        }

        return command;
    }