我尝试用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对象中是否有属性可以看到raw命令?
最后,我必须模拟这个命令(参数在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"
ProcessBuilder有一个'command()'方法,它将返回它将用于创建进程的参数列表。如果将它与空格连接,它应该为您提供生成的本机命令。
如果这还不够,您可以添加&& sleep 10000
,然后检查正在执行的实际进程的运行进程。
使用command.info().command()
。