2011-07-13 100 views
1

我正在創建一個幫助人們學習中文的Java應用程序。我已經創建了一個Java GUI,但我正在努力研究如何創建一個在新窗口中啓動外部應用程序的按鈕。如何在Linux中從Java GUI啓動外部應用程序?

我已經查閱了關於進程,桌面和運行時的各種教程,但他們似乎都在處理輸出控制檯上的數據,我無法弄清楚如何將它們應用到這種情況。

任何幫助都將不勝感激!謝謝!

編輯

所以我成立了運行時代碼到我的課,我已經得到了它列出我的文件的內容,但不能讓它使用「啓動應用程序的/ home /凱特/桌面/ PTAMM ./PTAMM「或」./PTAMM/home/kate/Desktop/PTAMM「或」./ home/kate/Desktop/PTAMM PTAMM「(我試過最後兩個絕望)。有什麼建議麼?謝謝!

回答

5

在這裏你去

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

+0

@Kate,上面是你需要的,你只需要用你通常用來從命令行/控制檯啓動那個外部應用程序的字符串替換字符串 – dm76

+0

非常感謝你的幫助!我使用./PTAMM運行應用程序。那麼這個命令的工作原理是什麼?:home/kate/Desktop/PTAMM ./PTAMM?我現在會嘗試,但我還沒有處於能夠這樣做的階段。 – Kate

+0

是的,它應該工作。 –

0

我擡頭各種教程過程中,桌面和運行上,但他們似乎都處理在控制檯上輸出數據,

沒錯! Desktop.open(File) ..

啓動相關應用程序中打開該文件。

(重點煤礦)

所以Desktop.open(new File("word.doc"))可能會打開MS Word或打開Office Writer中,而Desktop.open(new File("spreadsheet.xls"))可能會彈出OO計算器的MS Excel中。請使用File Browser GUI線程上的代碼。


如果您決定使用Runtime。我建議:

  • 讀&實施所有When Runtime.exec() won't所示的建議。使用ProcessBuilder來構建ProcessProcessBuilder甚至有一種方便的方法來合併輸出流,使它們更容易「消費」。

您可能在閱讀該文章後得出結論,即使用Desktop是更簡單的選項。使用Process涉及許多陷阱&。;)

+0

感謝您的幫助,我查找了Desktop.open,但是我只能看到它打開了一個文件,我不想這麼做,我想啓動一個應用程序。相信我,我很樂意使用更簡單的選項,但我認爲運行時更適合於此。 – Kate

+0

打開一個程序到底怎麼樣(沒有源文件),幫助人們學習中文?什麼樣的特定節目感興趣,爲什麼? –

+0

這是一個名爲PTAMM的增強現實程序,我正在使用它將中文單詞疊加在真實生活對象的頂部。 – Kate

相關問題