Как я могу увидеть необработанную команду, которая была выполнена в ProcessBuilder? - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь отладить ProcessBuilder в Java. Есть ли способ увидеть необработанную команду, которая была выполнена в 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 голосов
/ 25 апреля 2019

ProcessBuilder имеет метод 'command ()', который вернет вам список аргументов, который он будет использовать для создания процесса.Если вы объедините это с пробелами, это должно дать вам результирующую собственную команду.

Если этого недостаточно, вы можете добавить && sleep 10000 и затем проверить запущенные процессы на предмет фактического выполняемого процесса.

0 голосов
/ 25 апреля 2019

Используйте command.info().command().

...