我正在尝试通过 java 程序从 Unix shell 发送邮件。我使用 Apache commons exec 来执行此操作。
命令是
mutt -s "Subject of mail" email@domain.com < file.txt
我使用的Java代码是
CommandLine cmdLine = CommandLine.parse("mutt");
cmdLine.addArgument("-s");
cmdLine.addArgument("Subject of mail");
cmdLine.addArgument("email@domain.com");
cmdLine.addArgument("<");
cmdLine.addArgument("file.txt");
DefaultExecutor executor = new DefaultExecutor();
int exitValue = 0;
try {
exitValue = executor.execute(cmdLine);
} catch (IOException e) {
e.printStackTrace();
}
但是这段代码不起作用。如何使用java进行输入重定向
最佳答案
尝试一下
executor.getStreamHandler().setProcessInputStream(new FileInputStream("file.txt"))
但要注意文件路径
关于java - Java中带有输入重定向运算符的执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37649812/