我有以下shell脚本调用scrapy
renny$ echo $PATH
/usr/local/bin/scrapy:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
在调用此脚本文件的java程序中,错误流表示找不到scrapy:command
我在bash_profile文件中添加了scrapy路径,在执行PATH时我得到了结果
String command = "/Users/renny/Documents/WorkSpaces/Scrapy/tutorial/tutorial/crawls.sh";
String[] cmd = new String[]{"/bin/sh", command,key,formattedDate};
//Process p = Runtime.getRuntime().exec(cmd);
ProcessBuilder p = new ProcessBuilder(cmd);
Process p2 = p.start();
int code = p2.waitFor();
我正在使用以下代码运行脚本文件
StartServiceCtrlDispatcher()
如果我直接执行shell脚本,它可以正常工作。
答案 0 :(得分:2)
你的'PATH'声明中缺少正斜杠,路径应该是目录,而不是程序
你有
export PATH=usr/local/bin/scrapy:$PATH
应该是
export PATH=/usr/local/bin:$PATH
答案 1 :(得分:0)
我包括
cd /Users/renny/Documents/WorkSpaces/Scrapy/tutorial
export PATH=usr/local/bin/scrapy:$PATH
export PATH=/usr/local/bin:$PATH
现在似乎工作不确定为什么但是从java运行脚本时我需要将这些添加到文件的路径中但是在直接运行脚本文件时它不需要将这些PATH写入文件中
scrapy似乎也需要在项目目录中,所以将cd添加到项目路径