2015-02-08 80 views
1

我需要一些關於我的Java桌面應用程序的幫助。我有一個按鈕(我的意圖)終端(Linux)或提示符/ cmd(Windows)並傳遞一些命令(我試圖使用ping命令)。打開終端/提示並通過一個命令(ping)

我只知道如何打開終端,但我無法傳遞命令。我如何做到這一點?

謝謝。

編輯:

我此時代碼:

 Runtime rt = Runtime.getRuntime(); 
     String sistemaOperacional = System.getProperty("os.name").toLowerCase(); 
      String ip = "192.168.7.1"; 
      String comando = "ping -c 100 "+ip; 

      if (sistemaOperacional.contains("linux")){ 
       try { 
        rt.exec("gnome-terminal "); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
      else if (sistemaOperacional.contains("win")){ 

       try { 
        rt.exec("cmd.exe /c start command"); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

      } 
      else{ 
       JOptionPane.showMessageDialog(null, "Não foi possível identificar o sistema operacional!"); 
      } 
+0

您可以編輯您的問題以包含啓動終端或命令提示符的代碼嗎? – Kenster 2015-02-08 14:47:30

+0

已編輯。這稱爲終端,但沒有命令... – Tux123 2015-02-08 19:16:28

回答

0

您應搜索的文檔,你的終端,設置將在終端啓動時運行命令的選項。例如,對於xterm-e,使運行在Java代碼中xterm命令你會怎麼做,例如:

Runtime.getRuntime().exec("xterm -e ls;read"); // read is here just for the terminal not to close right away 

彈出一個終端,運行ls,並等待用戶按Enter鍵,直到終端關閉。

但是由於您不應該依賴於您的用戶擁有某個默認終端,因此您最好使用系統默認值,並且-e是許多終端之間的標準參數(例如,gnome-terminal也使用此參數):

Runtime.getRuntime().exec("x-terminal-emulator -e ls;read"); 
+0

在你把「讀」的地方是我通過我的var內容? – Tux123 2015-02-08 19:34:07

+0

你可以在'-e'後加任何命令。由於command只是一個字符串,你可以使用你的變量在你的Java代碼中編寫這個命令,是的。我把'read'放到了終端上,彈出後不會關閉。保持提供'-e'參數的終端可能是一個更好的方法(當然,如果你需要的話),但我沒有找到。 – gvlasov 2015-02-08 19:50:55

+0

是的,它的工作原理(在Linux上)。我嘗試使用'ping'命令並工作。 '「x-terminal-emulator -e」+ command'。在Windows中,我可以嘗試相同的事情嗎? – Tux123 2015-02-08 20:12:02

相關問題