java - 从 java 调用时 shell 脚本中的 Scrapy 命令不执行

标签 java bash shell scrapy

我有以下调用 scrapy 的 shell 脚本

#!/bin/bash
export PATH=usr/local/bin/scrapy:$PATH
scrapy crawl flipkart -a key="$1" -o "$2"flipkart.xml
scrapy crawl myntra -a key="$1" -o "$2"myntra.xml
scrapy crawl jabong -a key="$1" -o "$2"jabong.xml

echo $PATH

在调用此脚本文件的java程序中,错误流显示 scrapy: command not find

我在 bash_profile 文件中添加了 scrapy 路径,并在执行 PATH 时得到结果

renny$ echo $PATH
/usr/local/bin/scrapy:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

我正在使用以下代码运行脚本文件

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();

直接执行shell脚本就可以了。

最佳答案

您的“PATH”声明中缺少正斜杠,路径应该是目录,而不是程序

你有

export PATH=usr/local/bin/scrapy:$PATH

应该是

export PATH=/usr/local/bin:$PATH

关于java - 从 java 调用时 shell 脚本中的 Scrapy 命令不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464131/

相关文章:

java - write(byte[],int,int) 方法是如何工作的?

linux - 在 shell 中调用 Property 的正确语法是什么

linux - 如何在 Linux shell 脚本中提示是/否/取消输入?

regex - 将字符串替换为星号 bash

ios - 覆盖 .xcassets 中的文件

shell - 使用 Python 的自定义(交互式)shell

javascript - 从网页在服务器上执行 shell 脚本

java - 从 GONE 到 VISIBLE 的 Android 可见性第一次不起作用

java - hibernate 时异常

java - 获取 double 组的最大 k 个元素