Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 10982)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 10983)
@@ -123,5 +123,9 @@
     public static void showHelp() {
         // TODO: put in a platformHook for system that have no console by default
-        System.out.println(tr("Java OpenStreetMap Editor")+" ["
+        System.out.println(getHelp());
+    }
+
+    static String getHelp() {
+        return tr("Java OpenStreetMap Editor")+" ["
                 +Version.getInstance().getAgentString()+"]\n\n"+
                 tr("usage")+":\n"+
@@ -157,15 +161,14 @@
                         "      Java option to specify the maximum size of allocated memory in megabytes")+":\n"+
                         "\t-Xmx...m\n\n"+
-                        tr("examples")+":\n"+
-                        "\tjava -jar josm.jar track1.gpx track2.gpx london.osm\n"+
-                        "\tjava -jar josm.jar "+OsmUrlToBounds.getURL(43.2, 11.1, 13)+'\n'+
-                        "\tjava -jar josm.jar london.osm --selection=http://www.ostertag.name/osm/OSM_errors_node-duplicate.xml\n"+
-                        "\tjava -jar josm.jar 43.2,11.1,43.4,11.4\n"+
-                        "\tjava -Djosm.pref=$XDG_CONFIG_HOME -Djosm.userdata=$XDG_DATA_HOME -Djosm.cache=$XDG_CACHE_HOME -jar josm.jar\n"+
-                        "\tjava -Djosm.home=/home/user/.josm_dev -jar josm.jar\n"+
-                        "\tjava -Xmx1024m -jar josm.jar\n\n"+
-                        tr("Parameters --download, --downloadgps, and --selection are processed in this order.")+'\n'+
-                        tr("Make sure you load some data if you use --selection.")+'\n'
-                );
+                tr("examples")+":\n"+
+                "\tjava -jar josm.jar track1.gpx track2.gpx london.osm\n"+
+                "\tjava -jar josm.jar "+OsmUrlToBounds.getURL(43.2, 11.1, 13)+'\n'+
+                "\tjava -jar josm.jar london.osm --selection=http://www.ostertag.name/osm/OSM_errors_node-duplicate.xml\n"+
+                "\tjava -jar josm.jar 43.2,11.1,43.4,11.4\n"+
+                "\tjava -Djosm.pref=$XDG_CONFIG_HOME -Djosm.userdata=$XDG_DATA_HOME -Djosm.cache=$XDG_CACHE_HOME -jar josm.jar\n"+
+                "\tjava -Djosm.home=/home/user/.josm_dev -jar josm.jar\n"+
+                "\tjava -Xmx1024m -jar josm.jar\n\n"+
+                tr("Parameters --download, --downloadgps, and --selection are processed in this order.")+'\n'+
+                tr("Make sure you load some data if you use --selection.")+'\n';
     }
 
@@ -182,4 +185,5 @@
             args = new ProgramArguments(argArray);
         } catch (IllegalArgumentException e) {
+            System.err.println(e.getMessage());
             System.exit(1);
             return;
@@ -188,5 +192,7 @@
         Level logLevel = args.getLogLevel();
         Logging.setLogLevel(logLevel);
-        Main.info(tr("Log level is at {0} ({1}, {2})", logLevel.getLocalizedName(), logLevel.getName(), logLevel.intValue()));
+        if (!args.showVersion() && !args.showHelp()) {
+            Main.info(tr("Log level is at {0} ({1}, {2})", logLevel.getLocalizedName(), logLevel.getName(), logLevel.intValue()));
+        }
 
         Optional<String> language = args.getSingle(Option.LANGUAGE);
@@ -215,13 +221,13 @@
         Main.platform.preStartupHook();
 
-        Main.COMMAND_LINE_ARGS.addAll(Arrays.asList(argArray));
-
         if (args.showVersion()) {
             System.out.println(Version.getInstance().getAgentString());
-            System.exit(0);
+            return;
         } else if (args.showHelp()) {
             showHelp();
-            System.exit(0);
-        }
+            return;
+        }
+
+        Main.COMMAND_LINE_ARGS.addAll(Arrays.asList(argArray));
 
         boolean skipLoadingPlugins = args.hasOption(Option.SKIP_PLUGINS);
@@ -246,10 +252,4 @@
 
         checkIPv6();
-
-        // asking for help? show help and exit
-        if (args.hasOption(Option.HELP)) {
-            showHelp();
-            System.exit(0);
-        }
 
         processOffline(args);
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 10982)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 10983)
@@ -403,5 +403,5 @@
         // FIXME: This can be removed after we switch to a minimal version of Java that enables CLDR by default
         // or includes all languages we need in the JRE. See http://openjdk.java.net/jeps/252 for Java 9
-        Utils.updateSystemProperty("java.locale.providers", "JRE,CLDR");
+        System.setProperty("java.locale.providers", "JRE,CLDR"); // Don't call Utils.updateSystemProperty to avoid spurious log at startup
 
         //languages.put("ar", PluralMode.MODE_AR);
