Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我试图从cronjob调用gradle,但它没有';我似乎不会被处决_Java_Bash_Gradle_Cron - Fatal编程技术网

Java 我试图从cronjob调用gradle,但它没有';我似乎不会被处决

Java 我试图从cronjob调用gradle,但它没有';我似乎不会被处决,java,bash,gradle,cron,Java,Bash,Gradle,Cron,我刚刚在我的MacBook上安装了gradle,并想从cronjob调用share.sh,如下所示: 16 22 * * * /workspace/ShareMyData/share.sh > /dev/null sh使用gradle执行用于Google数据共享的java代码。 下面是share.sh脚本片段 #!/bin/bash PWD=`pwd` # change to gradle project home cd /workspace/ShareMyData gradle -

我刚刚在我的MacBook上安装了gradle,并想从cronjob调用share.sh,如下所示:

16 22 * * * /workspace/ShareMyData/share.sh > /dev/null
sh使用gradle执行用于Google数据共享的java代码。 下面是share.sh脚本片段

#!/bin/bash 

PWD=`pwd`
# change to gradle project home
cd /workspace/ShareMyData
gradle -q run
cd $PWD 
cronjob正确地调用了share.sh,但是没有执行“gradle”命令的迹象;我还直接从命令行运行share.sh,一切正常。
我不知道为什么gradle不能在我的脚本中从cronjob执行。请在此方面提供帮助,并提前表示感谢

在cron中运行shell时,shell上运行的命令可能会有不同的行为。尝试在脚本中输入gradle的实际路径

/path/to/gradle -q run
您可以使用shell中的which命令找到实际路径

which gradle

哪个gradle
添加到您的脚本中,通过cron运行它,看看您得到了什么。这似乎是一个
$PATH
设置问题。顺便说一句:如果这是您的完整脚本,您可以省略所有包含
PWD
的行@Cyrus可以
PWD
行,因为脚本在子shell中运行,并且不会影响任何其他shell的当前工作目录?@GeorgePantazes:是的。这确实是根本原因。通过在我的脚本/usr/local/bin/gradle-q run中这样修改它,它可以从cronjob中完美地运行。谢谢!