0

此代码在计算机 A 上运行良好,但在计算机 B 上不起作用......我不明白为什么......没有异常或其他任何东西......在计算机 A 上创建了日志文件,在计算机 B 上的日志文件是' t 创建。计算机 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";
4

2 回答 2

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
}
于 2013-05-28T19:54:09.447 回答
0

继续 SLaks 所说的——使用内置文件 API 是您最好的选择。这是一般教程的链接

使用这些 API 将解决从计算机 A 到 B...到 C 等任何奇怪的环境问题。

于 2013-05-28T19:51:38.033 回答