我有一个 java 程序,它确实执行 shell 命令然后等待命令从 shell 退出以获得结果。但是进程无法读取命令的输出,它只是将结果打印为空。
但是,如果我从 shell 提示符运行相同的命令,我可以在那里看到结果打印..
{
[root@localhost home]# tsp -I 标记 input.mpg -P 标记 -a 10 -v 10 -O 文件 output.mpg
标记:10
标记:20
标记:30
标记:40
标记:50
标记:60
标记:70
标记:80
标记:90
标记:100
标记:好的 [root@localhost home]#
}
在这里执行shell命令的Java程序{
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ExecuteShellComand {
public static void main(String[] args) {
ExecuteShellComand obj = new ExecuteShellComand();
String command = "tsp -I olesmarker input.mpg -P " + "olesmarker -a 10 -v 10 -O file output.mpg";
String output = obj.executeCommand(command);
System.out.println("Command Result = " + output);
}
private String executeCommand(String command) {
StringBuilder output = new StringBuilder();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
}
梵蒂冈之花
相关分类