You can invoke a Unix shell like you would invoke any other program. Use the -c option to pass the command to run as a parameter. Also make sure to use the exec(String[]) method, and not exec(String), to avoid the command being tokenized the wrong way:
String[] cmd = {"/bin/sh", "-c", "/bin/cat alias > bias"};
Process p = Runtime.getRuntime().exec(cmd);
To read and write from/to the process, get the input, output, and error streams from the Process instance you just created:
InputStream in = p.getInputStream();
InputStream err = p.getErrorStream();
OutputStream out = p.getOutputStream();
Then read from/write to these streams as usual.
Note that streams are named relative to the Java application. Anything written to the OutputStream is piped to the standard input of the process you created. Anything written by the process to stdout/stderr is piped to the InputStreams obtained from p.getInputStream() and p.getErrorStream() respectively.
Reference: http://download.oracle.com/javase/6/docs/api/java/lang/Process.html