java - Java中带有输入重定向运算符的执行命令

标签 java apache-commons apache-commons-io

我正在尝试通过 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/

相关文章:

java - 使用java比较视频图像的最快方法

java - 这段代码中的资源 block 尝试没有阻止这个 IOException 错误?

android - 一个 map cURL 命令如何切换到一个自组装的 HTTP 请求?

java - Apache Commons IO 仅下载第一个 PDF 页面

java - 从Java中的文本文件中读取特定行

java - 使用 IOUtils.copy() 时套接字流挂起

java - 在 Java 中伪造堆栈跟踪

java - Math.random() 和精度损失的好奇心

java - ImageIO.read 在多线程执行中抛出异常

apache-commons - Commons Configuration2 ReloadingFileBasedConfiguration