Как проще всего вызвать программу из фрагмента кода Java? (Программа, которую я хочу запустить, называется aiSee, и ее можно запустить из командной строки или из графического интерфейса Windows; я работаю в Vista, но код также будет выполняться в системах Linux).
Запуск программы из кода Java
Ответы (4)
Взгляните на Процесс и Классы времени выполнения. Имейте в виду, что то, чего вы пытаетесь достичь, вероятно, не зависит от платформы.
Вот небольшой фрагмент кода, который может быть полезен:
public class YourClass
{
public static void main(String args[])
throws Exception
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("name_of_your_application.exe");
int exitVal = proc.exitValue();
System.out.println("Process exitValue: " + exitVal);
}
}
Один вопрос в S.O. обсуждение подобных вопросов. Еще. И еще один.
Вы можете получить экземпляр среды выполнения, используя Runtime.getRuntime()
, и вызвать метод среды выполнения exec
с командой для выполнения программы в качестве аргумента.
Например:
Runtime runTime = Runtime.getRuntime ();
Process proc = rt.exec("iSee.exe");
Вы также можете захватить выходные данные программы, используя InputStream из процесса.
Трудность, с которой вы столкнетесь, заключается в том, как заставить приложение узнать путь. Вы можете использовать файл xml или файл конфигурации, но если вы используете эту ссылку, она должна объяснить, как запустить файл: http://www.javacoffeebreak.com/faq/faq0030.html
Вы также можете рассмотреть возможность передачи в вашу программу какого-либо аргумента, чтобы облегчить поиск конкретной программы, которую вы хотите запустить.
Это могут быть аргументы командной строки, файлы свойств или системные свойства.