ShellScript文件未执行删除elasticsearch索引

时间:2017-09-22 04:57:11

标签: java elasticsearch

您好我有一个弹性搜索索引,需要在插入该类型的新条目时删除。我能够创建一个shellscript文件并使用java appliaction将数据插入到elasticsearch中,如下所示

public static void main(String[] args) {
    try {
        // Run the process
        /*Runtime.getRuntime().exec("cd src/resources");*/
        Process p = Runtime.getRuntime().exec("sh src/resources/test.sh");
        // Get the input stream
        InputStream is = p.getInputStream();

        // Read script execution results
        int i;
        StringBuffer sb = new StringBuffer();
        while ((i = is.read()) != -1)
            sb.append((char) i);

        System.out.println(sb.toString());

    } catch (IOException e) {
        e.printStackTrace();
    }
}

Test.sh

curl -XDELETE http://localhost:9200/pokedex

使用我的java程序可以插入数据,但我无法删除,我试图在命令行中运行上面的命令,它运行正常。这里发生了什么?为什么它在命令行中而不是在我的程序中执行?

1 个答案:

答案 0 :(得分:0)

您的Java程序是否知道“sh”是什么?您是否尝试过完全符合命令:

 Process p = Runtime.getRuntime().exec("/bin/sh src/resources/test.sh");

不运行时的错误是什么?在Java程序中运行shell脚本是最佳做法吗?还有其他在Java程序中运行命令的方法吗?

java Runtime.exec to run shell script