本文介绍了使用Java运行Linux命令时出现问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Java运行命令,但没有输出.
I am running command using Java and getting no output.
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'可以正常运行.想知道我在处理双引号或%号时是否缺少任何东西吗?
While the same command ---> queryData 1005017 --format '"%s" scope' runs without any issue. Wondering am i missing any thing while handling either double quote, or % sign?
推荐答案
尝试不要使用字符串从Java启动进程.正确的方法是使用 ProcessBuilder:>
Try do NOT use strings to start processes from Java. Correct way is usage of ProcessBuilder:
p = new ProcessBuilder(Arrays.asList(
"queryData", "1005017", "--format", "\"%s\" scope")).start();
这篇关于使用Java运行Linux命令时出现问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!