我必须通过 Java 程序从 Linux 服务器发送电子邮件。当我在 SSH Secure Shell 上运行命令时,一切正常。但是当我从 Java 调用相同的命令时,空格后的主题被删除。
脚本如下:
mail -s "This is a test subject""receiver@example.com"
当我通过 Java 执行上述脚本时,主题被截断为 "This(双引号后跟第一个单词)
运行上述脚本的 Java 代码是:
Runtime.getRuntime().exec(emailCommand);
*这里的emailCommand指的是shell脚本。
谷歌搜索了很多,但没有找到解决方案。
最佳答案
在与我讨论后,我为您提供如下解决方案:-
String[] command ={"/path/to/your/shellscript.sh", "shellscriptcommandlineparameter"};
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectOutput(new File("/tmp/output.txt"));
try {
Process p = pb.start();
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}catch (Exception e1) {
e1.printStackTrace();
}
}
尝试使用这个更新的 java 代码,您可以在 output.txt
文件中看到 shell 脚本的输出。
关于java - 从 Java 运行时,Linux 邮件命令删除主题中空格后的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49529975/