我如何查看在ProcessBuilder中执行的原始命令?

时间:2019-04-25 10:16:22

标签: java curl processbuilder

我尝试用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"

2 个答案:

答案 0 :(得分:0)

使用command.info().command()

答案 1 :(得分:0)

ProcessBuilder有一个'command()'方法,该方法将带给您用于创建过程的参数列表。如果用空格将其连接起来,它将给您生成的本机命令。

如果这还不够,您可以添加&& sleep 10000,然后检查正在运行的进程以查看正在执行的实际进程。