java - 从 Java 运行时,Linux 邮件命令删除主题中空格后的文本

标签 java linux shell email centos

我必须通过 Java 程序从 Linux 服务器发送电子邮件。当我在 SSH Secure Shell 上运行命令时,一切正常。但是当我从 Java 调用相同的命令时,空格后的主题被删除。

脚本如下:

ma​​il -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/

相关文章:

postgresql - psql shell 命令执行与\!

java - java JDBC中的数值溢出异常

java - <T extends AnInterface> 与 <?扩展接口(interface)>

Java 套接字输出延迟了第一条消息

linux - 在 Linux 中以编程方式设置 Flash 安全性

xcode - 如何在后台在xcode中运行系统命令

java - 如何在java中转换 "' "to " ` "

php - 告诉 Composer 使用哪个 PHP 版本

c++ - 在 windows 和 linux 下用 ifstream 打开二进制 .ply 文件时的不同结果

linux - 无法设置docker-machine环境变量bash