2015-07-21 96 views
0

我用Java執行Python的命令,即Java運行時字符串解析

ctool run <cluster_name> <nodes> <command> 

所以基本上這個運行<command>集羣的節點給出。例如:

ctool run my_cluster all 'rm -rf /home/tester/folder' 

這運行在「全部」的它運行從終端完全正常,但是當我從Java運行時作爲運行此「my_cluster」節點「室射頻/家/測試/文件夾」一個字符串,它將<command>中的-p,-r等任意選項作爲ctool選項並拋出使用錯誤。

我假定它是與字符串是如何解析命令。有沒有辦法解決這個問題?

+1

郵政代碼,以便我們可以看到這個問題,如果有一個。 – gbtimmon

+1

顯示您用於運行命令的Java代碼... –

回答

0

這應該工作:

Process process = new ProcessBuilder("rm","-rf","/home/tester/folder").start(); 
InputStream is = process.getInputStream(); 
InputStreamReader isr = new InputStreamReader(is); 
BufferedReader br = new BufferedReader(isr); 
String out; 
while ((out = br.readLine()) != null) { 
    System.out.println(out); 
}