【发布时间】:2015-06-19 06:30:46
【问题描述】:
我一直在尝试在 linux 中安排一个作业来运行一个用 Java 编写的可运行 jar 文件,它会发送电子邮件。
首先,我使用命令Java -jar /usr/test/test.jar 来运行jar 文件。它运作良好,可以向我的 gmail 帐户发送电子邮件。
然后我使用 crontab 安排一个作业每 10 分钟运行一次。代码是0,10,20,30,40,50 * * * * java -jar /usr/test/test.jar。
它没有像我预期的那样工作。我的gmail没有收到任何电子邮件。但我检查/var/spool/mail。我在那里看到一封新邮件。
我的问题是如何在我的 gmail 中将其安排为工作时接收电子邮件。
更新: 我在 /var/spool/mail 中查看电子邮件。这是其中一条消息:
来自 test@test.job 2015 年 4 月 14 日星期二 10:10:01
返回路径:test@test.job
X-Original-To:测试
交付给:test@test.job
收到:通过 test.job(后缀,来自用户 ID 1254) 编号 B7D276B1E8D; 2015 年 4 月 14 日星期二 10:10:01 -0600 (MDT)
来自:“(Cron 守护进程)”test@test.job
收件人:test@test.job
X-Cron-Env:XDG_RUNTIME_DIR=/run/user/1254
X-Cron-Env:LANG=en_US.UTF-8
X-Cron-Env: SHELL=/bin/sh
X-Cron-Env: HOME=/home/test
X-Cron-Env: PATH=/usr/bin:/bin
X-Cron-Env:LOGNAME=test
X-Cron-Env:USER=test
消息 ID:20150413195002.0E0356E778C@test.job 日期:2015 年 4 月 13 日星期一 13:50:02 -0600 (MDT)
/bin/sh: java: 找不到命令
知道发生了什么吗?
谢谢
【问题讨论】:
-
我怀疑你的路径设置不正确,cron 在自己的 bash 配置文件中运行,尝试使用
java的完整路径 -
附带说明,您可以只使用
ScheduledExecutorService并让 Java 在后台运行,而不是每 10 分钟调用一次。 -
@JigarJoshi 我指定的路径是jar文件的完整路径。如果我不将其安排为工作,它会正常工作。
-
我的意思是可执行java的完整路径
-
@JigarJoshi 是的。在我指定可执行jave的完整路径之后。它完美地工作。感谢您的帮助!