Index: trunk/src/org/openstreetmap/josm/actions/RestartAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 5966)
+++ trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 5967)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.PlatformHookWindows;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -49,5 +50,5 @@
     
     /**
-     * Determines if restartting the application should be possible on this platform.
+     * Determines if restarting the application should be possible on this platform.
      * @return {@code true} if the mandatory system property {@code sun.java.command} is defined, {@code false} otherwise.
      * @since 5951
@@ -65,5 +66,10 @@
         try {
             // java binary
-            final List<String> cmd = new ArrayList<String>(Collections.singleton(System.getProperty("java.home") + "/bin/java"));
+            final String java = System.getProperty("java.home") + File.separator + "bin" + File.separator + 
+                    (Main.platform instanceof PlatformHookWindows ? "java.exe" : "java");
+            if (!new File(java).isFile()) {
+                throw new IOException("Unable to find suitable java runtime at "+java);
+            }
+            final List<String> cmd = new ArrayList<String>(Collections.singleton(java));
             // vm arguments
             for (String arg : ManagementFactory.getRuntimeMXBean().getInputArguments()) {
@@ -89,4 +95,5 @@
             // finally add program arguments
             cmd.addAll(Arrays.asList(Main.commandLineArgs));
+            Main.info("Restart "+cmd);
             // execute the command in a shutdown hook, to be sure that all the
             // resources have been disposed before restarting the application
