Even if a program has a graphical interface and is always run by double clicking or whatever, command line arguments provide an excellent way to pass personal preferences to a program automatically when it is started up. Thus, any good Java application will accept options via command line arguments as well as via menus. In window systems, it is common to associate programs with particular types of data file, or to create shortcuts or driver scripts. In an association or shortcut or driver script, you can specify command line arguments which customise the program.