我正在尝试从Java代码中执行一个程序。以下是我的代码:
public static void main(String argv[]) {
try {
String line;
Process p = Runtime.getRuntime().exec(
"/bin/bash -c ls > OutputFileNames.txt");
BufferedReader input = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
}
我的操作系统是Mac OS X 10.6。
如果我从getRuntime().exec()
方法中删除"> OutputFileNames.txt"
,所有文件名都可以正常打印到控制台。但我需要将它打印到一个文件中。
另外,如果我将命令更改为:
Process p = Runtime.getRuntime().exec(
"cmd \c dir > OutputFileNames.txt");
如果在Windows上运行,它可以正常运行并将结果完美地打印到文件中。
我已经阅读了其他关于从Java执行另一个应用程序的帖子,但似乎都与我的问题无关。
非常感谢您能提供的任何帮助。
谢谢,
File.listFiles()
并自己将结果写入文件。这在任何操作系统上都能正常工作,而且不需要特定于Mac OS X或Windows的代码。 - Jesper