【问题标题】:Send email in linux from a Jar file在 linux 中从 Jar 文件发送电子邮件
【发布时间】: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的完整路径之后。它完美地工作。感谢您的帮助!

标签: java linux email jar


【解决方案1】:

我怀疑您的路径设置不正确,cron 在其自己的 bash 配置文件中运行,尝试使用 java 的完整路径

【讨论】:

    【解决方案2】:

    在没有加载您当前配置文件的情况下运行 crontab,很可能您的 jar 执行缺少一些全局变量/设置。 您应该事先加载您当前的配置文件,而不是仅仅调用您的 jar,并最终保存日志以供进一步分析:

    0,10,20,30,40,50 * * * * . ~/.profile; java -jar /usr/test/test.jar &>>/path/lo/log.log

    【讨论】:

      猜你喜欢
      • 2017-01-16
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2018-01-25
      相关资源
      最近更新 更多