BioJava: ExternalProcess class
The ExternalProcess class is intended for applications that call an external program many times, e.g. in a loop, with varying command line arguments and that need high performance throughput, i.e. the program's input and output should not be written to disk, but directly written/read to/from its standard input, output and error streams. Therefore, it provides input/output handling in multiple threads and the threads are managed by a thread pool.

