下面是我的shell脚本,位于/ app / Scripts中。
Test.sh:
#!/bin/sh
usr/bin/java -jar /app/Scripts/emailJAR.jar >> /app/pvs/test.txt
echo $(date) >> /app/Scripts/test.txt
我将cron-tab安排为* * * * * /app/Scripts/Test.sh
我每分钟都会得到“ echo $(date)”的输出,但是不是usr / bin / java -jar /app/Scripts/emailJAR.jar。
有人可以提出建议吗?
脚本位置,Jar位置,可执行权限都已设置。仍然只有java -jar命令通过crontab执行。
奥秘,我能够手动运行脚本。
请帮助我解决这个问题。
答案 0 :(得分:0)
>> /app/pvs/test.txt
看起来它可以作为.jar文件的参数,例如:
java -jar myJar.jar arg1 arg2 arg3 etc
您可以
System.out.println(Arrays.asList(args));
在程序的主要方法中,测试我的陈述是否正确。
或者将您要查找的输出重定向到您引用的test.txt文件的输出流
我希望您在尝试将jar以及命令本身放入crontab之前对其进行了测试。
答案 1 :(得分:0)
在第二行中,尝试将usr/bin/java
更改为/usr/bin/java
。按照目前的说法,它仅在从根目录执行时才有效,而crontab可能从其他目录执行。