为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

犯罪嫌疑人X 2022-10-20 16:53:58
我尝试在 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 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

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

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


查看完整回答
反对 回复 2022-10-20
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

使用command.info().command().



查看完整回答
反对 回复 2022-10-20
  • 2 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信