Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запуск exe в java, не запускается, файл консольный 
V
    Опции темы
izver84
Дата 3.9.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



надо запустить   такую команду

Код

 "C:/Program Files/EMS/Data Import for PostgreSQL/PgImportC.exe" is101.itm


где "C:/Program Files/EMS/Data Import for PostgreSQL/PgImportC.exe" - запускаемая программа (консольная), 
а  is101.itm - исполняемый файл

запускаю команду в run работает.

а пишу в проге
Код

 try {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(" cmd C:/Program Files/EMS/Data Import for PostgreSQL/PgImportC.exe s101.itm");
    } catch (IOException e1) {
                        // TODO Автоматически созданный блок catch
                        e1.printStackTrace();
                    }                


 или
Код

 try {
    Runtime.getRuntime().exec("cmd /C C:/Program Files/EMS/Data Import for PostgreSQL/PgImportC.exe s101.itm");
    } catch (IOException e1) {
                        // TODO Автоматически созданный блок catch
                        e1.printStackTrace();
                    }                


не запускает 
ничего не выдаёт

не запускаются досовские файлы

почему не понятно




--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Vitaly333
Дата 3.9.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 6.11.2006
Где: Volgograd

Репутация: 2
Всего: 2



Юзай поиск. Была уже тема
PM MAIL   Вверх
izver84
Дата 3.9.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1




сделал так
Код

 try {
                      Runtime rt = Runtime.getRuntime();
                      String cmd[] = {"cmd.exe /C start C:/Program Files/EMS/Data Import for PostgreSQL/PgImportC.exe is101.itm"};
                        Process proc = rt.exec(cmd);
                        
                    
                    } catch (IOException e1) {
                        // TODO Автоматически созданный блок catch
                        e1.printStackTrace();
                    }   


выдаёт ошибку
Код


java.io.IOException: Cannot run program "cmd.exe /C start C:/Program Files/EMS/Data Import for PostgreSQL/PgImportC.exe is101.itm": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at sbit.CopyOfVirobotka$7.actionPerformed(CopyOfVirobotka.java:1023)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 29 more




Это сообщение отредактировал(а) izver84 - 3.9.2009, 14:40


--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Kircul
Дата 3.9.2009, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 20.2.2007

Репутация: 6
Всего: 7



Попробуй так:
Код

ProcessBuilder pb = new ProcessBuilder("C:/Program Files/EMS/Data Import for PostgreSQL/PgImportC.exe", "is101.itm");
Process p = pb.start();

PM   Вверх
izver84
Дата 3.9.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



Kircul, не работает.

Vitaly333, посмотрел.
для удобства сделал кнопку при нажатии которой запускается консольное приложение
Код

jButton2.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    String PROGRAMM = "d:\\fpd26\\foxprox.exe";
                    
                    
                    try {
                     File workDir = new File(PROGRAMM).getParentFile();
                        ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/C",PROGRAMM);
                        processBuilder.directory(workDir);
                        Process process = processBuilder.start();
                    } catch (IOException e1) {
                        // TODO Автоматически созданный блок catch
                        e1.printStackTrace();
                    }
                
                }
            });


не работает

и нечего не выдаёт.



--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Kircul
Дата 3.9.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 20.2.2007

Репутация: 6
Всего: 7



Вот скажи, зачем ты прицепился к этому cmd.exe (во-первых это не кроссплатфоменно)? Напиши просто:
Код

ProcessBuilder processBuilder = new ProcessBuilder(PROGRAMM/*, "Аттрибут1", "Аттрибут2" ...*/);

Если программа выводит что-то в консоль читай из потоков:
Код

InputStream is = process.getInputStream();
InputStream es = process.getErrorStream();

Вообще вроде так должно работать.

Это сообщение отредактировал(а) Kircul - 3.9.2009, 15:52
PM   Вверх
izver84
Дата 3.9.2009, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



Kircul, не работает так.
загнал в батник 
Код

"C:\Program Files\EMS\Data Import for PostgreSQL\PgImportC.exe" "C:\Program Files\EMS\Data Import for PostgreSQL\is101.itm"

просто запускаю работает из программы тоже работает

создал другой батник
Код

"C:\Program Files\EMS\Data Import for PostgreSQL\PgImportC.exe" "C:\Program Files\EMS\Data Import for PostgreSQL\is_product.itm"

просто запускаю работает из программы не работает
Код

try {
                             Runtime rt = Runtime.getRuntime();
                              String cmd[] = {"sproduct.bat"};
                                Process proc = rt.exec(cmd);
                                
                                
                                
                            } catch (IOException e1) {
                                // TODO Автоматически созданный блок catch
                                e1.printStackTrace();
                            }   


почему не понятно. 
C:\Program Files\EMS\Data Import for PostgreSQL\PgImportC.exe запускается т.к. visual studio просить его дебагнуть.
а первы запускаешь нечего не просит

программирую в eclipse


Это сообщение отредактировал(а) izver84 - 3.9.2009, 17:51


--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Vitaly333
Дата 4.9.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 6.11.2006
Где: Volgograd

Репутация: 2
Всего: 2



izver84, Я тебе для чего ссылку дал? Там же есть решение твоей проблемы. Даже 2 решения.

Код

String path = "C:\\Program Files\\EMS\\Data Import for PostgreSQL";
        String cmd[] = {"cmd.exe", "/C", "cd "+path+ "&& start PgImportC.exe s101.itm"};
          try {
            Runtime.getRuntime().exec(cmd);
          } catch (IOException e) { }   



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1369 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.