[英]Issue while running Linux Command using Java?
我正在使用Java運行命令,但沒有輸出。
Process p;
Runtime run = Runtime.getRuntime();
String s1 = "queryData 1005017 --format '\"%s" scope'";
System.out.println("Command is " + s1);
try {
p = run.exec(s1);
BufferedReader br = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null)
System.out.println("line: " + s);
p.getErrorStream();
p.waitFor();
}
雖然相同的命令---> queryData 1005017 --format'“%s” scope'可以正常運行。 想知道我在處理雙引號或%號時是否缺少任何東西嗎?
您沒有正確地轉義內部引號:
String s1 = "queryData 1005017 --format '\"%s" scope'";
^--start java string ^--end java string
^^^^^ what's this mean to java?
你可能想要
String s1 = "queryData 1005017 --format '\"%s\" scope'";
^--note this
代替。
嘗試不要使用字符串從Java啟動進程。 正確的方法是使用ProcessBuilder :
p = new ProcessBuilder(Arrays.asList(
"queryData", "1005017", "--format", "\"%s\" scope")).start();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.