Программа на C # не будет выполняться из Java

1

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

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

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

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

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

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

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

ProcessBuilder pb = new ProcessBuilder(cmdAndArgs);

Process p = pb.start();

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

Обновить:

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

  • 4
    Можно ли найти ProgramName.exe в вашем PATH?
  • 0
    Да, это так и есть, я не получаю сообщение об ошибке о том, что файла нет или я не могу найти командный файл. И командный файл находится в том же каталоге, что и исполняемый файл.
Показать ещё 4 комментария
Теги:
batch-file
command-line

1 ответ

1
Лучший ответ

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

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

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

start cmd.exe /k "nameOfExeFile"
exit
  • 0
    Если путь неверен, я не получу нулевую ошибку? Я не получаю эту ошибку. другой, когда я пытаюсь запустить его из командного файла.
  • 0
    Runtime.getRuntime () Exec ( "nameOfTheExeFile"). даст вам IOException, но этот сборщик процессов не будет выдавать никаких исключений, даже если файл не найден. Вы можете попробовать это сами.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню