我尝试用Java调试ProcessBuilder。 有没有办法查看已在ProcessBuilder中执行的原始命令? 我尝试执行curl命令。 我怎么看原始命令?
我尝试了一个错误/输出流,但是没有产生任何有用的输出。 有谁知道我必须使用哪个流?
StringBuilder builder = new StringBuilder();
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
while(line = input.readLine() != null){
builder.append(line);
builder.append(" ");
}
String result = builder.toString();
我也尝试过:
ProcessBuilder commandBuilder = new ProcessBuilder("curl", VOPT, AUOPT, AUV, AUT, URL, DURLE, PROJECTS, PID, DURLE, NOTES, NOTESVAL, DURLE, NAME, NAMEVAL);
Process command = commandBuilder.start();
Process对象中是否有一个属性,我可以在其中看到原始命令?
最终,我必须模拟此命令(参数在ProcessBuilder中都是正确的):
curl -v -H "Authorization: Bearer <myPersonalToken>" https://app.asana.com/api/1.0/tasks --data-urlencode "projects=<projectId>" --data-urlencode "notes=PRTG_Message" --data-urlencode "name=8005"
答案 0 :(得分:0)
使用command.info().command()
。
答案 1 :(得分:0)
ProcessBuilder有一个'command()'方法,该方法将带给您用于创建过程的参数列表。如果用空格将其连接起来,它将给您生成的本机命令。
如果这还不够,您可以添加&& sleep 10000
,然后检查正在运行的进程以查看正在执行的实际进程。