2015-01-15 5 views
1

У меня есть эта программа на C#, которую я создал, и пока я могу ее запустить, щелкнув файл exe или нажав на пакетный файл, я не могу запустить программу в java-программе, которую я сделал запустить его. Я пробовал эту строку кода и не мог запустить программное обеспечение.C# программа не будет выполнена из Java

Runtime.getRuntime().exec("nameOfTheExeFile"); 

или установить его в пакетный файл, который я создал, который запускает программу.

Runtime.getRuntime().exec("nameOfTheBatchFile"); 

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

Я даже пытался использовать процесс, но я не получаю никакой удачи с этим процессом, а

List cmdAndArgs = Arrays.asList(new String[]{"cmd.exe", "/c", "ProgramName.exe"}); 

ProcessBuilder pb = new ProcessBuilder(cmdAndArgs); 

Process p = pb.start(); 

Странная вещь я не получаю какие-либо ошибки на всех. Даже когда я пытаюсь выполнить тестирование, я вообще не ошибаюсь. Есть ли процесс, который я пропускаю или что-то еще? Я теряюсь, что делать.

Update:

Когда я проверить в диспетчере задач я могу видеть, что программа работает, но не версия ехе. Я вижу ProgramName.vshost.exe, есть ли причина для этого, а не exe-файл?

+4

Может ProgramName.exe быть найдены на вашем пути? – NESPowerGlove

+0

Да, это возможно, и я не получаю сообщение об ошибке, говорящее, что файла нет или я не могу найти пакетный файл. И командный файл находится в том же каталоге, что и exe-файл. –

+0

У меня есть правильный набор каталогов, я убедился в этом, поскольку я могу установить каталог и список и все еще найти командный файл –

ответ

1

Поскольку ваша программа - это программа командной строки, вам необходимо запустить ее из cmd. Я не уверен, что это лучший способ сделать это, но он работает.

Runtime.getRuntime().exec("cmd /c start nameOfTheBatchFile"); 

Пакетный файл:

start cmd.exe /k "nameOfExeFile" 
exit 
+0

Если путь неправильный, я не получу нулевую ошибку? Я не получаю эту ошибку. другой тогда, когда я пытаюсь запустить его из командного файла. –

+0

Runtime.getRuntime(). Exec ("nameOfTheExeFile"); даст вам IOException, но этот processbuilder не будет генерировать никаких исключений, даже если файл не найден. Вы можете попробовать сами. – FINDarkside

+0

Ну, это странно, когда я пытаюсь, чтобы я получал файл, не существует ошибки, но почему бы мне это объяснить java, и прежде чем спросить да, есть exe-файл: P, я попробовал это с командным файлом, а while все еще может запустить командный файл, который exe-файл не хочет запускать. –

Смежные вопросы