此代码在计算机A上运行正常,但在计算机B上无效...我无法理解为什么...... 没有例外或其他任何东西......在计算机上创建了一个日志文件,在计算机B上没有创建日志文件。 计算机A和B具有相同的Java版本...... 你有什么想法?
String str = "cmd /C dir tools>1.log";
try {
Runtime.getRuntime().exec(str);
} catch (Exception e) {
e.printStackTrace();
}
PS 此代码在两台计算机上都能正常运行
String str = "cmd /C dir tools";
答案 0 :(得分:1)
您必须打开进程的输出流才能将输出正确保存到文件中。
您可以通过创建Process对象并将其保存到文件来执行此操作:
Process p = Runtime.getRuntime().exec(str);
InputStreamReader reader = p.getInputStream();
BufferedReader buffer = new BufferedReader(reader);
String line = null;
while ((line = buffer.readLine() != null) {
//write stuff to file here
}
答案 1 :(得分:0)
继续SLaks所说的 - 使用内置文件API是你最好的选择。 这是一般教程的link
使用这些API可以解决从计算机A到B ...到C等任何奇怪的环境问题。