将 Java 应用程序作为 Cron 作业运行

将 Java 应用程序作为 Cron 作业运行

我已经尝试了所有能想到的方法并到处寻找解决方案,但我无法将 JAVA_HOME 放入 cron 中以定期运行任何 java 程序。

在终端

java -version

给了我你所期望的一切。'which java' 打印 '/usr/bin/java'

我还可以通过在终端启动的 bash 脚本顺利运行 Java 应用程序。

我想从 cron 定期运行它们但它拒绝。

我的 crontab

PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-6-sun/bin
JAVA_HOME=/usr/lib/jvm/java-6-sun
* * * * * /bin/bash --version > /tmp/b.log
* * * * * /usr/bin/java -version > /tmp/j.log

它用文本填充 b.log 但是 j.log 为空。

我也尝试过将 export JAVA_HOME=/usr/lib/jvm/java-6-sun 添加到脚本顶部,但没有成功。

有什么指点吗?

答案1

问题是 java -version 似乎没有写入 stdout

rhand@server:/tmp$ /usr/bin/java -version > t.log
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.13) (6b20-1.9.13-0ubuntu1~10.04.1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)

解决方案是使用此命令:

/usr/bin/java -version 2> /tmp/j.log

相关内容