簡體   English   中英

通過Java運行curl命令時出錯

[英]Error while running curl command through java

我正在嘗試通過java運行以下curl命令,這可以從命令行正常運行,但是當我使用java運行它時會引發錯誤

curl -XPOST -H'Content-type: application/json' "http://localhost:8084/druid/v2/?pretty" -d'{"queryType":"timeBoundary","dataSource":"wikipedia"}'

這是使用processbuilder的Java代碼:

ProcessBuilder pb1 = new ProcessBuilder(
            "-XPOST",
            "-H", "Content-Type:application/json",
            "http://localhost:8084/druid/v2/?pretty",
            "-d", "{\"queryType\":\"timeBoundary\",\"dataSource\":\"wikipedia\"}"

        );

Process shell = pb1.start();

這是我得到的錯誤。

Exception in thread "main" java.io.IOException: Cannot run program "-XPOST": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at com.druid.DruidConnection.main(DruidConnection.java:69)

Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:187)
at java.lang.ProcessImpl.start(ProcessImpl.java:130)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
... 1 more

您需要添加curl.exe作為第一個參數:

ProcessBuilder pb1 = new ProcessBuilder(
            "curl.exe",
            "-XPOST",
            "-H", "Content-Type:application/json",
            "http://localhost:8084/druid/v2/?pretty",
            "-d", "{\"queryType\":\"timeBoundary\",\"dataSource\":\"wikipedia\"}"

        );

另外,您還需要確保帶有curl.exe的文件夾在您的PATH中

PS。 當然,對於Windows,對於* NIX,只是“ curl”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM