首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Procmail配方,通过管道连接到Java标准

Procmail配方,通过管道连接到Java标准
EN

Stack Overflow用户
提问于 2011-09-10 06:41:24
回答 2查看 1.1K关注 0票数 0

我正在尝试使用procmail对传入的邮件运行一些自定义解析,并希望调用一个java程序,使用|管道到stdin读取消息的头部和正文。有很多使用perl和python过滤邮件的例子,但没有一个是使用java的。作为一个开始的例子,我的procmail食谱:

代码语言:javascript
复制
:0 hbfW
|"/usr/bin/java -cp /root/parser HelloWorldApp"

我的java应用程序只有echo的stdin:

代码语言:javascript
复制
import java.io.*;
public class HelloWorldApp {
 public static void main(String[] args) {
 InputStreamReader isReader = new InputStreamReader(System.in);
BufferedReader bufReader = new BufferedReader(isReader);
while(true){
    try {
        String inputStr = null;
        if((inputStr=bufReader.readLine()) != null) {
            System.out.println(inputStr);
        }
        else {
            break;
        }
    }
    catch (Exception e) {
       break;
    }
  }
 }
}

procmail日志:

代码语言:javascript
复制
procmail: Executing "/usr/bin/java -cp /root/parser HelloWorldApp"
/bin/sh: /usr/bin/java HelloWorldApp: No such file or directory
procmail: Error while writing to "/usr/bin/java HelloWorldApp"
procmail: Rescue of unfiltered data succeeded

1)我是否创建了正确的配方来将数据输送到java? 2)因为我仍然希望procmail处理交付,我的配方使用(f)标志。但是如何将从java程序中创建的结果发送回procmail呢?stdout?

EN

回答 2

Stack Overflow用户

发布于 2011-09-10 07:51:08

删除"/usr/bin/java / -cp / HelloWorldApp“周围的引号。

来源:http://www.linfo.org/pipe.html

票数 1
EN

Stack Overflow用户

发布于 2011-09-12 19:56:36

配方上的"filter“标志指定管道将读取标准输入上的消息,并在标准输出上写回一条(可能未更改)消息,该消息将替换原始消息。

正如Jake223已经回复的,命令两边的引号不正确,应该删除。然而,错误消息看起来并不像是对应于那个特定的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7368198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档