Запуск других приложений с Java - PullRequest
8 голосов
/ 17 марта 2010

Можно ли запустить другое приложение, установленное в системе, с моим java-приложением и передать ему файл в качестве параметра? У меня есть клиент, который получает видео с сервера, и я хочу, чтобы моя клиентская программа запускалась, например, проигрыватель VLC с файлом, который я получил. Как мне это удается?

Ответы [ 4 ]

16 голосов
/ 17 марта 2010

Использование Desktop#open(). Он запустит связанное с платформой приложение по умолчанию, чтобы открыть данный файл.

File file = new File("/absolute/path/to/file.vlc");
Desktop.getDesktop().open(file);

Не нужно хлопотать с Runtime#exec() или ProcessBuilder, для которого вам придется добавить обнаружение платформы и написать логику для конкретной платформы.

3 голосов
/ 17 марта 2010

Очень просто:

Runtime.getRuntime().exec("vlc [arguments]"); //Write all arguments as you would in your shell.

Убедитесь, что вы поймали все соответствующие исключения

3 голосов
/ 17 марта 2010

Вы можете довольно легко запустить внешнюю программу на Java 5+ с помощью ProcessBuilder , включая передачу аргументов и обработку потоков ввода / вывода.

например.

ProcessBuilder movieProcess = new ProcessBuilder("/path/to/movieplayer", "/path/to.moviefile");
movieProcess.start();

Использовал только сам, выполняя вещи, не связанные с пользовательским интерфейсом, я быстро ознакомлюсь с этим и посмотрю, что происходит с чем-то вроде VLC.


Обновление - работает с flv в Ubuntu, пользовательский интерфейс виден и принимает аргументы файла.

2 голосов
/ 17 марта 2010

Вы можете вызвать метод exec для объекта Runtime.

Runtime.getRuntime().exec("System specific command line text here");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...