Запуск файла .jar - Двойной щелчок по сравнению с выполнением командной строки

У меня есть настольное приложение Java, которое содержит следующий код:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
System.out.println("check1");
int intResult = compiler.run(System.in, System.out, foutErrorFile, strvalidatePath);
System.out.println("check2");

Когда я запускаю соответствующий файл .jar этого приложения, выполняя «java -jar name.jar», печатаются и check1, и check2, и приложение работает нормально. Но когда я попытался запустить jar, дважды щелкнув файл .jar, я обнаружил, что ToolProvider.getSystemJavaCompiler () возвращает ноль. "check2" не печатается. Я не получаю правильный результат от compiler.run ().

Я изменил запись реестра "\ HKEY_CLASSES_ROOT \ jarfile \ shell \ open \ command" из "C: \ Program Files \ Java \ jre1.6.0 \ bin \ javaw.exe" -jar "% 1"% * в "C: \ Program Files \ Java \ jre1.6.0 \ bin \ java.exe "-jar"% 1 "% *. Таким образом, я могу видеть консоль, когда приложение работает.

Так почему же моя программа (которая работает нормально при запуске с использованием команды java -jar) работает неправильно, когда я запускаю файл .jar двойным щелчком мыши?

Ответы на вопрос(2)

Ваш ответ на вопрос