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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск dos - программы в Java 
V
    Опции темы
Vitaly333
Дата 27.3.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Можно ли как - нибудь из Java запустить dos-программу:

Такой код:
Код

Process process =  Runtime.getRuntime().exec("mydosprogram.exe");

Не работает. Файл находит, обрабатывает но не запускает. 

P.S.: ОС - Windows XP. 

PM MAIL   Вверх
PashaOvechkin
Дата 28.3.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

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



либо укажи полный путь на ехе, либо, если етот ехе у тебя прописан в переменных окружения, указывай название запускаемого файла без расширения
Код

Process process =  Runtime.getRuntime().exec("mydosprogram");

PM MAIL Skype   Вверх
LSD
Дата 28.3.2009, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(Vitaly333 @  27.3.2009,  23:03 Найти цитируемый пост)
Не работает. Файл находит, обрабатывает но не запускает.

А как ты определяешь, что не запускает?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Vitaly333
Дата 28.3.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

либо укажи полный путь на ехе, либо, если етот ехе у тебя прописан в переменных окружения, указывай название запускаемого файла без расширения

Пробовал по разному и с относительным и с абсолютными путями. Всё равно не работет. Не в путях здесь дело, сам exe - шник он находит. 

Код

А как ты определяешь, что не запускает? 


Я для проверки пробовал запустить старый добрый dos-овский doom. Но никакого UI не появляется. Та же беда и с моим dos - овским приложением. Может быть нужно запускать через какой - нибудь dos эмулятор или в свойствах exe-шника чё нибудь нашаманить? 

Это сообщение отредактировал(а) Vitaly333 - 28.3.2009, 13:58
PM MAIL   Вверх
NeoNYura
Дата 28.3.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

             String[] cmd={"cmd.exe","/r",arg};
             p = Runtime.getRuntime().exec(cmd);


Попробуй так, где arg="mydosprogram.exe"
PM MAIL   Вверх
Vitaly333
Дата 28.3.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



NeoNYura, не получается.
У меня даже командную строку так не запускает:
Код

Process process =  Runtime.getRuntime().exec("C:/Windows/System32/cmd.exe");

PM MAIL   Вверх
NeoNYura
Дата 28.3.2009, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возми потоки от Процесса, и посмотри что он пишет

Это сообщение отредактировал(а) NeoNYura - 28.3.2009, 14:17
PM MAIL   Вверх
Vitaly333
Дата 28.3.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Возми потоки от Процесса, и посмотри что он пишет

Вы имеете ввиду stdin_stream и stdout_stream?
PM MAIL   Вверх
NeoNYura
Дата 28.3.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

Process.getErrorStream())
Process.getOutStream())

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


Бывалый
*


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

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



Ничего не пишет
PM MAIL   Вверх
SoulKeeper
Дата 28.3.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

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



ExitCode хоть возвращает?
PM MAIL   Вверх
NeoNYura
Дата 28.3.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуй вызвать cmd.exe dir


если в Process.getOutStream())


не вернет список, значит проблема в программе, выкладывай ее сюда

Это сообщение отредактировал(а) NeoNYura - 28.3.2009, 15:55
PM MAIL   Вверх
Vitaly333
Дата 28.3.2009, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

ExitCode хоть возвращает? 

Может exitValue или hachCode? ExitCode не нашел, а хэш возращает, более того я могу прочитать из входного потока следующие строки:

Код

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.


Значит cmd всё таки запускается, но почему то не отображается как отдельное консольное окошко.

Цитата

Попробуй вызвать cmd.exe dir
Process.getOutStream())


Читать нужно не из Process.getOutStream() а из Process.getInputStream()
Считыват текущую директорию нормально.













PM MAIL   Вверх
Vitaly333
Дата 6.6.2009, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так как быть то??? Что никто не знает?
PM MAIL   Вверх
dorogoyIV
Дата 6.6.2009, 05:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



Код

  Runtime.getRuntime().exec("cmd /C D:/mydosprogram.exe");

так пробовал?
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.1161 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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