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

问题描述 投票:1回答:2

我尝试用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"
java curl processbuilder
2个回答
0
投票

ProcessBuilder有一个'command()'方法,它将返回它将用于创建进程的参数列表。如果将它与空格连接,它应该为您提供生成的本机命令。

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


0
投票

使用command.info().command()

© www.soinside.com 2019 - 2024. All rights reserved.