2009-05-10 5 views
1

Каков самый простой способ вызвать программу с помощью куска Java-кода? (Программа, которую я хочу запустить, является aiSee, и ее можно запустить из командной строки или из графического интерфейса Windows, а я нахожусь в Vista, но код также будет запущен в системах Linux).Запуск программы из Java кода

ответ

7

Посмотрите на Process и Runtime классы. Имейте в виду, что то, что вы пытаетесь выполнить, вероятно, не зависит от платформы.

Вот небольшой фрагмент кода, который может быть полезным:

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); 
    } 
} 

One вопрос в С.О. обсуждая похожие вопросы. Another один. And другой один.

+0

Хорошо, спасибо большое. Да, вы правы: он не может быть независимым от платформы (поскольку две системы, вероятно, будут иметь программу в другом месте). О чем я думал? – 2009-05-10 17:31:35

0

Трудность, с которой вы столкнетесь, заключается в том, как заставить приложение знать путь. Вы можете использовать файл XML или конфигурации, но если вы используете эту ссылку, он должен объяснить, как запустить файл: http://www.javacoffeebreak.com/faq/faq0030.html

+0

Я, вероятно, просто передал в качестве командной строки arg, как предложил Натан. Это неудобно, но это должно будет сделать – 2009-05-10 17:37:28

1

Вы можете получить экземпляр во время выполнения с помощью Runtime.getRuntime() и вызвать exec метод среды выполнения, с для выполнения программы в качестве аргумента.

Например:

Runtime runTime = Runtime.getRuntime();  
Process proc = rt.exec("iSee.exe"); 

Вы также можете захватить вывод программы с помощью получения InputStream из процесса.

+0

хорошо, спасибо; хотя, поскольку вывод является графическим (aiSee отображает графики из описаний GDL), я, вероятно, не буду обрабатывать его дальше; но хорошо знать, что у меня есть этот вариант – 2009-05-10 17:34:56

0

Вы также можете рассмотреть возможность передачи какого-либо аргумента вашей программе, чтобы облегчить поиск конкретной программы, которую вы хотите запустить.

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

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