¿Cómo paso la entrada de la consola a un programa Java en ejecución en lugar de a jdb?

Depurando mi código con jdb de Java. Estoy atascado en un punto donde mi programa espera entrada de línea de comandos, pero jdb lo intercepta como un comando jdb.

¿Cómo le digo a jdb que pase el texto al programa en ejecución?

Versión:

C:\Documents and Settings\*snip*>java -showversion
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)

Compilar:

javac -g LZWDecompress.java

jdb.ini:

stop in LZWDecompress.decompress
run
monitor list

Esto es lo que pasa:

Initializing jdb ...
*** Reading commands from C:\Documents and Settings\*snip*\jdb.ini
Deferring breakpoint LZWDecompress.decompress.
It will be set after the class is loaded.
> run LZWDecompress
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
> > >
VM Started: Set deferred breakpoint LZWDecompress.decompress
File to be decompressed: 

En la solicitud anterior, entro en "prueba" y recibo esta respuesta:

...
VM Started: Set deferred breakpoint LZWDecompress.decompress
File to be decompressed: test
Unrecognized command: 'test'.  Try help...
>

Aquí está el código de la función principal (...), escrito por nuestro instructor, no yo:

public static void main(String[] args) throws IOException {    
    short [] source; 
    int dlen; 
    int sz;
    byte [] decompressed;
    BufferedReader br;
    DataInputStream In;
    FileInputStream FI;
    FileOutputStream FO;
    InputStreamReader isr;
    String cfnm;
    String sfnm;

    source = new short[INPUT_FILE_IO_BUFFER_SIZE];
    decompressed = new byte[OUTPUT_FILE_IO_BUFFER_SIZE];

    isr = new InputStreamReader(System.in);
    br = new BufferedReader(isr);
    System.out.print("File to be decompressed: ");
    System.out.flush(); 
    sfnm = br.readLine();
    System.out.print("Name of the decompressed file: ");
    System.out.flush(); 
    cfnm = br.readLine();
    FI = new FileInputStream(sfnm);
    In = new DataInputStream(FI);
    FO = new FileOutputStream(cfnm);
    for (sz=0; true; ++sz) {
        try { source[sz] = In.readShort();
        } catch (EOFException e) { break;
        } catch (Exception e) { System.out.print(e.toString()); 
        }
    }
    dlen = decompress(source, sz, decompressed);
    FO.write(decompressed, 0, dlen);
    FO.close(); 
}  // end main()

Respuestas a la pregunta(1)

Su respuesta a la pregunta