wood burning stoves*
The moose likes I/O and Streams and the fly likes Starting a process and using STDIN/STDOU/STDERR Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » I/O and Streams
Bookmark "Starting a process and using STDIN/STDOU/STDERR" Watch "Starting a process and using STDIN/STDOU/STDERR" New topic
Author

Starting a process and using STDIN/STDOU/STDERR

C�dric Yhuel
Greenhorn

Joined: Oct 10, 2005
Posts: 4
Hi all,
I'm starting a linux interactive console application that uses the ncurses library, from my SWING application.

The program starts ok, but even if i don't do anything with the stdin stream object, it keeps sending line feed characters to the process. I guess this is some kind of weird stream initialisation from the spawned process (maybe due to ncurses).

The process uses wgetc to grab characters from stdin (i'm not completely sure about this).

Has anybody got any clue about what is going on ?

For info, here's the simplistic version of the source code i'm using:

Joe Ess
Bartender

Joined: Oct 29, 2001
Posts: 8836
    
    7

I don't know about constantly sending line feeds, but I don't think this code does what you want:


InputStreamReader.ready() only returns true if there is data already in the InputStreamReader's buffer. Unless you have a really short-lived process you may be running right past your output. If you have a long-lived process, you should have these reads in seperate threads because the output buffers can fill and then block, halting the spawned process.


"blabbing like a narcissistic fool with a superiority complex" ~ N.A.
[How To Ask Questions On JavaRanch]
C�dric Yhuel
Greenhorn

Joined: Oct 10, 2005
Posts: 4
Thanks for this. My actual app uses three separate threads, one for stdout/stderr and waitfor.

I'm starting to think that this is due to some terminal initialisation (like noecho()) done in the console application. I tyhink i read somewhere that a process launched from a java program isn't attached to any terminal..

So a solution would be to launch something like xterm -e "ConsoleApp"
The only thing is that i'd like to hide the window that shows up after that call. Any idea ?
 
jQuery in Action, 2nd edition
 
subject: Starting a process and using STDIN/STDOU/STDERR
 
Similar Threads
how to save the file in clint side in temp folder
Map text file to a 2 dimensional array.
Execute exe file from the java code with some input data
Question about FileInputStream and StreamReader
Java adding infinte strings