我有一种情况,我希望(需要)在执行给定的 java 程序时通过电子邮件发送文件。复制命令在 Windows 和 Linux 上都可以正常执行,但是,当在 java 上命令执行时 mutt 不起作用。命令字符串生成完美,(我目前手动键入打印到控制台的字符串以手动发送电子邮件),但是 Runtime.getRuntime.exec() 没有正确执行它。
if (OS.indexOf("win") >= 0)
{
// windows
cmd = "cmd /C copy "+workbookFileName+" "+latestWorkbookFileName;
System.out.println("executing command windows: "+cmd);
Runtime.getRuntime().exec(cmd);
}
else
{
// others
cmd = "cp "+workbookFileName+" "+latestWorkbookFileName;
System.out.println("executing Linux: "+cmd);
Runtime.getRuntime().exec(cmd);
cmd = "echo \"This is the message body\" | mutt -a \""+workbookFileName+"\" -s \"message subject\" -- sqlinjection@domain.com";
System.out.println("executing Linux: "+cmd);
Runtime.getRuntime().exec(cmd);
System.out.println("bye");
}