|
|
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Ответ вызываемой программы записывается в переменную. Когда вывожу эту переменную на экран, то теряются переносы строк. Как сохранить формитирование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 12:06:55 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
readLine() читает строку без самого переноса. Такая конкатенация в цикле - убивает производительсность в Java. message = message + s; Не могу понять почему ваш код вообще работает. p.waitFor(); блокирует поток, и никакая вычитка дальше не будет работать пока дочерний процесс не помрет. Такие вычитки, обычно, делают в отдельных потоках. В Java 7 ничего такого городить не нужно. Там есть методы redirect*, которые уже это реализуют. В Java 6 есть другой метод redirect, который сливает IN и ERR вместе, так что их не нужно вычитывать по отдельности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 12:26:31 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо за ответ авторНе могу понять почему ваш код вообще работает. p.waitFor(); блокирует поток, и никакая вычитка дальше не будет работать пока дочерний процесс не помрет. - блокирует на время выполнения внешней программы. Как только она отработает станет доступным лог выполнения. авторТакая конкатенация в цикле - убивает производительсность в Java. message = message + s; - Подскажите, как лучше сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 13:03:25 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
StringBuilder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 13:04:58 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
Максим Нблокирует на время выполнения внешней программы. Как только она отработает станет доступным лог выполнения. Это очень интересно, потому что обычно дочерний процесс просто зависает когда он пытается вывести что-то в консоль, но ваш Java код этого ещё не читает. Возможно, как-то вам повезло с процессом и у него жирный внутренний буфер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 13:06:38 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМаксим Нблокирует на время выполнения внешней программы. Как только она отработает станет доступным лог выполнения. Это очень интересно, потому что обычно дочерний процесс просто зависает когда он пытается вывести что-то в консоль, но ваш Java код этого ещё не читает. Возможно, как-то вам повезло с процессом и у него жирный внутренний буфер. С помощью этого кода я запускаю несколько внешних программок: sqlplus, архиватор и т.д. Пока работал нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 13:10:35 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
Убрал p.waitFor(); получил ошибку: Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 13:39:38 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
Максим НУбрал p.waitFor(); получил ошибку: Код: java 1. 2. Логично что если процесс не завершен, то и exit code у него отсутствует. Это к вычитке данных отношения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 13:45:08 |
|
||
|
Форматирование вывода getRuntime
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМаксим НУбрал p.waitFor(); получил ошибку: Код: java 1. 2. Логично что если процесс не завершен, то и exit code у него отсутствует. Это к вычитке данных отношения не имеет. Туплю, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 13:47:33 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=283&tid=2131516]: |
0ms |
get settings: |
19ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
38ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
81ms |
get tp. blocked users: |
3ms |
| others: | 315ms |
| total: | 511ms |

| 0 / 0 |
