我已经尝试了所有能想到的方法并到处寻找解决方案,但我无法将 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