|
|
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
День добрый! Удивительный вопрос ... Есть Process запущенный, производится вычитка и запись через InputStream, OutputStream. Все хорошо, но Process представляет консольное (под Win). Как его prompt вытащить? Это вообще возможно? В вычитке его нет ... Пасиба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:02:08 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
_usa__83_Удивительный вопрос ... Есть Process запущенный, производится вычитка и запись через InputStream, OutputStream. Все хорошо, но Process представляет консольное (под Win). Как его prompt вытащить? Это вообще возможно? В вычитке его нет ... Не понял вопроса. Java запускает что за Process? cmd? batch? Всё там есть. Или это какой-то exe, который создаёт новую консоль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:07:43 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Запускается psql собственно (Postgres'овская консоль), то бишь ... хммм cmd получается ... у нее, естественно если работать через cmd под Win свой промпт, который хотелось бы вычитать ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:10:11 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
_usa__83_ Запускается psql собственно (Postgres'овская консоль), то бишь ... хммм cmd получается ... у нее, естественно если работать через cmd под Win свой промпт, который хотелось бы вычитать ... Покажите код как вы запускаете. Если консоль запущена из Java так, что юзер её видит, то Java с ней уже не сможет работать. Так как процесс привязан к виндовой консоли. Либо psql сам создаёт консоль, тогда нужно искать другой способ с консолью через Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:16:38 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, package test; import java.io.IOException; public class Main { public static void main(String[] args) { try { Process p=Runtime.getRuntime().exec("\"C:\\Program Files\\PostgreSQL\\9.1\\bin\\psql\" -U postgres"); ReadWrite arg = new T(); InputWriter iw=new InputWriter(p.getOutputStream(),arg); OutputReader or=new OutputReader(p.getInputStream(),arg); or.start(); Thread.sleep(1000); iw.start(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:19:21 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
Используйте ProcessBuilder с редиректом Error в Out. Может консоль из-за ошибки заблокировалась. Так консоль для юзера не видна. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:21:47 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
Вот тут пишут что не получится. Возможно psql создаёт свою консоль, а не работает с IO процесса. http://stackoverflow.com/questions/3240704/execute-external-program-using-processbuilder-and-provide-input psql.exe > log.txt пишет что-то в файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:23:39 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Тут уж я не понял ... Когда я запускаю процесс psql так как написано, то он (psql и cmd висят в диспетчере) ... Окно cmd не создается (по крайней мере я его не вижу) ... привязка к out и in осуществляется в InputWriter iw=new InputWriter(p.getOutputStream(),arg); OutputReader or=new OutputReader(p.getInputStream(),arg); и с вычиткой и записью все нормально, т.е. я пишу, читаю но в принципе промпта который виден в окне cmd если psql запускать через него я не могу получить в программе на жабе ... Возможно это и не возможно (хм...) в силу "специфики" самого промпта, может он не пишется в stdout? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:28:38 |
|
||
|
Process, prompt и т.д.
|
|||
|---|---|---|---|
|
#18+
_usa__83_получить в программе на жабе ... Возможно это и не возможно (хм...) в силу "специфики" самого промпта, может он не пишется в stdout? Да. Может быть и такое. Если psql непосредственно пишет в консоль какими-то иными средствами. Попробуйте ProcessBuilder.redirectErrorStream() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2013, 11:37:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38261544&tid=2129344]: |
0ms |
get settings: |
17ms |
get forum list: |
26ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
45ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
86ms |
get tp. blocked users: |
3ms |
| others: | 314ms |
| total: | 524ms |

| 0 / 0 |
