public static void main(String[] args) {
        try {
            bundle = ResourceBundle.getBundle("net/sourceforge/jfilecrypt/translations/jfilecrypt", Locale.getDefault());
        } catch(MissingResourceException resEx) {
            bundle = ResourceBundle.getBundle("net/sourceforge/jfilecrypt/translations/jfilecrypt", Locale.ENGLISH);
        }
        
        // Extend the information about the application
        Date releaseDate = null;
        try {
            DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM,
                    Locale.GERMAN);
            releaseDate = df.parse(RELEASE_DATE);
        } catch (ParseException e) {
            System.err.println("The given release date has wrong format!");
            e.printStackTrace();
            System.exit(EXIT_WRONG_RELEASE_DATE_FORMAT);
            
        }
        SimpleDateFormat format = new SimpleDateFormat("d. MMMM yyyy");
        Application.RELEASE_DATE = format.format(releaseDate);

        Pattern pattern = Pattern.compile("[0-9]+");
        Matcher matcher = pattern.matcher(SVN_REVISION);
        if(matcher.find())
        {
           SVN_REVISION = matcher.group();
        }
        
        // there should be only one Model for all controllers
        Model model = new Model();
        
        /*
         * If no arguments available then just start the GUI.
         * If there are some arguments then start the
         * command line controller (which can start a GUI by himself).
         */
        if(args.length <= 0) {
            new GuiMainController(model);
        } else {
            new CommandLineController(model, args);
        }
    }