Как я могу запустить внешнее приложение из Java GUI в Linux? - PullRequest
2 голосов
/ 13 июля 2011

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

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

Любая помощь будет принята с благодарностью!Спасибо!

РЕДАКТИРОВАТЬ

Итак, я включил исполняемый код в свой класс и получил его для перечисления содержимого моего файла, но не могу заставить его запустить приложение, используя«/ home / kate / Desktop / PTAMM ./PTAMM» или «./PTAMM / home / kate / Desktop / PTAMM» или «./ home / kate / Desktop / PTAMM PTAMM» (я пробовал последние два из отчаяния),Какие-либо предложения?Спасибо!

Ответы [ 2 ]

6 голосов
/ 13 июля 2011

Вот, пожалуйста,

Runtime.getRuntime().exec("command to launch executable");

См

0 голосов
/ 13 июля 2011

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

Нет, это не так! Desktop.open (Файл) ..

Запускает связанное приложение , чтобы открыть файл.

(выделение мое)

Так что Desktop.open(new File("word.doc")) может открыть MS Word или Open Office Writer, а Desktop.open(new File("spreadsheet.xls")) может вызвать MS Excel из OO Calc.

Чтобы поиграть с классом Desktop, попробуйте код в потоке GUI Обозревателя файлов.


Если вы решили использовать Runtime.Я предлагаю:

  • Прочитать и внедрить все совет, показанный в Когда Runtime.exec () не будет .
  • Использовать ProcessBuilder для построения Process.ProcessBuilder даже имеет удобный метод объединения выходных потоков, чтобы их было легче «потреблять».

После прочтения этой статьи вы можете заключить, что использование Desktop является более простым вариантом.Есть много ловушек и ловушек, связанных с использованием Process.;)

...