gpt4 book ai didi

java - 从 java 运行 shell 脚本

转载 作者:行者123 更新时间:2023-12-01 10:19:22 25 4
gpt4 key购买 nike

我有包含此脚本的 sendmail 文件 echo "sample message"|/usr/bin/swaks --to email@gmail.com 我想使用以下代码从 java 运行它:

ProcessBuilder pb = new ProcessBuilder("sendmail");
Process p = pb.start()

但电子邮件未发送。出了什么问题,我该如何解决这个问题?

编辑:运行./sendmail正在运行,并且电子邮件已发送到我的邮箱

最佳答案

我认为问题在于您的 java 应用程序在脚本完成之前就结束了。

试试这个:

    ProcessBuilder pb = new ProcessBuilder("./sendmail.sh");
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String readline;
int i = 0;
while ((readline = reader.readLine()) != null) {
System.out.println(++i + " " + readline);
}

上面的代码应该打印出你的命令打印的内容,这可以帮助你调试。它还具有阻塞直到脚本完成的副作用。

如果这有效并且您不关心输出,您可以这样做:

  ProcessBuilder pb = new ProcessBuilder("./test.sh");
Process p = pb.start();
p.waitFor();

关于java - 从 java 运行 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713956/

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