gpt4 book ai didi

java - 从java调用系统命令来保存日志文件

转载 作者:行者123 更新时间:2023-12-02 00:13:39 26 4
gpt4 key购买 nike

我在从 Java 调用系统命令时遇到问题。我尝试过以下方法:

if (!found) {
dbContents += ";" + getPreviousValue(i, dbContents);

try {
String cmd = "echo \"Device " + headers[i] + " no data incoming at " + timeString + "\" >> /home/envir/11/log.txt";
Runtime.getRuntime().exec(cmd);
Console.out("N");
}
catch(IOException ioe) {
System.out.println(ioe);
}

问题是文件“log.txt”永远不会被创建。我检查了 if 子句是否执行过,我可以看到该消息

Console.out("N");

确实出现了,所以我不知道为什么前面的两行代码没有出现。

这是打印“N”的证据: enter image description here

我必须说,这是我第一次使用从 java 文件调用系统命令的东西,所以也许这可能是一个新手错误。

如果有人能回答这个问题,我将不胜感激。

提前致谢。

最佳答案

您的命令可能失败。任何错误消息都会发送到您忽略的 Process.getErrorStream(),因此您看不到它。

就您而言,如果您想要将所有内容追加到日志文件中,那么最好的方法是使用 Java。它更快、更干净、更有效。

PrintWriter pw = new PrintWriter(new FileWriter("/home/envir/11/log.txt", true));
pw.println("Device " + headers[i] + " no data incoming at " + timeString);
pw.close();

问题可能是“echo”不是您系统上的程序。如果您正在运行 shell,则它将包含仅在该 shell 运行时才可用的命令。

顺便说一句 >> 是只有 shell 才能理解的语法。

关于java - 从java调用系统命令来保存日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com