2013-02-16 115 views
1

我需要使用的ProcessBuilder建立在Linux下面的命令:撇號的ProcessBuilder

sudo packit -t UDP -S 1000 -D 1200 -s 127.0.0.1 -d 192.168.1.1 -c 5 -n 12345 -p '0x 80 64 45 78 00 00 27' 

我用下面的代碼嘗試:

commands.add("sudo"); commands.add("packit"); 
commands.add("-t"); commands.add("UDP"); 
commands.add("-S"); commands.add("1000"); 
commands.add("-D"); commands.add("1200"); 
commands.add("-s"); commands.add("127.0.0.1"); 
commands.add("-d"); commands.add("192.168.1.1"); 
commands.add("-c"); 
String a = "5"; commands.add(a); 
String b = "-n 12345"; commands.add(b); 
String c = "-p '0x 80 64 45 78 00 00 27'"; commands.add(c); 
ProcessBuilder pb = new ProcessBuilder(commands); 
Process process = pb.start(); 

沒有語法錯誤,但結果不與終端的結果相同。 當我刪除String c = "-p '0x 80 64 45 78 00 00 27'"; commands.add(c);。我得到與終端的結果相同的結果。我認爲問題是撇號('),請幫我解決這個問題。

+0

我想你的意思是'撇號'? :) – Thomas 2013-02-16 09:42:46

+0

yes..hehe ..謝謝托馬斯.. – 2013-02-16 11:19:54

回答

1

我覺得這些都是錯誤的:

String b = "-n 12345"; commands.add(b); 
String c = "-p '0x 80 64 45 78 00 00 27'"; commands.add(c); 

選項(-n-p)是從它的參數分別:

commands.add("-n"); commands.add("12345"); 
commands.add("-p"); commands.add("0x 80 64 45 78 00 00 27"); 

說明還缺少額外的報價存在。這些只是外殼需要的。

+0

謝謝Thomas .. !! 'commands.add(「 - p」); commands.add(「0x80 64 45 78 00 00 27」); String b =「-n 12345」; commands.add(B);」 這是工作..只刪除額外的引號.. – 2013-02-16 11:11:46