它打印当前目录和退出的原因是因为您的Java应用程序退出.您需要向创建的进程的输入和错误流添加(线程)侦听器,并且您可能希望将printStream添加到进程的输出流
例:
proc = Runtime.getRuntime().exec(cmds);
PrintStream pw = new PrintStream(proc.getOutputStream());
FetcherListener fl = new FetcherListener() {
@Override
public void fetchedMore(byte[] buf, int start, int end) {
textOut.println(new String(buf, start, end - start));
}
@Override
public void fetchedAll(byte[] buf) {
}
};
IOUtils.loadDataASync(proc.getInputStream(), fl);
IOUtils.loadDataASync(proc.getErrorStream(), fl);
String home = System.getProperty("user.home");
//System.out.println("home: " + home);
String profile = IOUtils.loadTextFile(new File(home + "/.profile"));
pw.println(profile);
pw.flush();
要运行它,您需要下载我的sourceforge项目:http://tus.sourceforge.net/,但希望代码片段足够有用,您可以适应J2SE以及您正在使用的任何其他内容.