Запуск .bat внутри графического интерфейса Java Swing не работает

Используя следующий код, я могу запустить файл .bat (без графического интерфейса, только следующие строки). Однако, когда я добавляю его в качестве метода ActionListener для кнопки (это приложение Java Swing), файл .bat никогда не выполняется. Любые идеи?

Runtime runtime = Runtime.getRuntime();
try {
    Process proc = runtime.exec("cmd /c start C:\\Users\\someName\\Desktop\\test.bat");
} catch (IOException e1) {
    e1.printStackTrace();
}

person Michael Underwood    schedule 09.11.2012    source источник
comment
Добро пожаловать в СО. Пожалуйста, прочтите часто задаваемые вопросы и как спросить советы по написанию хороших вопросов SO. Откуда ты знаешь, что он не работает? Вы убедились, что ваш код выполняется при нажатии кнопки? Вы не предоставили никакой информации, которая могла бы быть вам полезна.   -  person Jim Garrison    schedule 09.11.2012
comment
посмотрите, поможет ли это stackoverflow.com/questions /6735195/использование-cmd-как-процесса?rq=1   -  person kosa    schedule 09.11.2012
comment
Есть какие-нибудь идеи? Множество идей, но без контекста, ни одна из которых не будет вам полезна. Возможно, вы захотите дать нам больше контекста и пример кода вашей реальной проблемы.   -  person MadProgrammer    schedule 09.11.2012
comment
1) Просмотрите статью, связанную с вики-тегом exec, и выполните все предложения. Это может привести к решению непосредственной проблемы, но также... 2) Используйте ProcessBuilder, который упрощает реализацию пункта (1) и... 3) Предоставьте аргументы в виде массива.   -  person Andrew Thompson    schedule 09.11.2012
comment
Знаете ли вы, что ActionListener выполняется?   -  person Ed Staub    schedule 09.11.2012


Ответы (1)


Я тоже получаю те же ошибки.

Вы можете использовать вот так

public void actionPerformed (java.awt.event.ActionEvent evt) {

            File file = new File("filename.bat");
            try {
                Desktop.getDesktop().open(file);
                } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            jButton1ActionPerformed(evt);
        }
person Murali    schedule 23.11.2012