如何查看在 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"


犯罪嫌疑人X
浏览 194回答 2
2回答

墨色风雨

ProcessBuilder 有一个 'command()' 方法,它将返回参数列表,它将用于创建进程。如果您将其与空格连接,它应该会为您提供生成的本机命令。如果这还不够,您可以添加&& sleep 10000然后检查正在运行的进程以了解正在执行的实际进程。

Cats萌萌

使用command.info().command().
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java