【发布时间】:2016-06-10 06:20:42
【问题描述】:
我正在尝试通过 JAVA 运行一些命令行操作。我的一个命令需要按回车键才能完成。我不知道如何在命令执行过程中通过 java 输入。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class CommandLineMethods {
public static String executeCommand(String []command)
{
StringBuffer output = new StringBuffer();
Process p;
try{
p=Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while((line=br.readLine())!=null)
{
output.append(line + "\n");
}
}
catch(Exception e)
{
e.printStackTrace();
}
return output.toString();
}
public static void main(String...args)
{
String scriptsPath ="C:\\bip_autochain\\win64_x64\\scripts";
String scriptName="lcm_cli.bat";
String scriptArguments="lcmproperty C:\\TestNG_Auto\\resources\\LCMBiar_Import.property";
String []command = {"cmd.exe", "/c"," cd "+scriptsPath+" && "+ scriptName +" -"+scriptArguments};
String res = executeCommand(command);
System.out.println(res);
}
}
运行带有某些参数的脚本的最后一个命令需要按下回车键才能完成。如何做到这一点?
【问题讨论】:
-
在提示输入时尝试提供
\n。 -
不,它没有打印任何东西!它在打印之前等待命令完全执行。但这需要在两者之间输入
-
这不是重复的,因为它需要在前一个命令中按下键,任何新命令都不会执行,因为程序正在等待前一个命令完成