0
私は、データをinfluxdbサーバに送信するために書いたjavaプログラムを使用して、コマンドライン - curlコマンドを実行する際に問題があります。Javaプログラムでコマンドライン引数を実行する際の問題
これが私のプログラムにコマンドを送信するためのコードです:
public static void main (String[] args){
String command = "curl -i -XPOST 'http://localhost:8086/write?db=speed' --data-binary 'test,dataset=perf cpu=10'";
execcommand (command);
}
public static void execcommand (String command){
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(output.toString().length());
}
問題は、データがサーバーに送信されていないことで、コマンドからの応答がゼロです。
コマンドラインから全く同じコマンドを実行できるので、コマンドの構文に間違いはありません。私はその情報が役に立つなら、マッキントッシュを使っています。
My-MBP:~ MB$ curl -i -XPOST 'http://localhost:8086/write?db=speed' --data-binary 'test,dataset=perf cpu=10'
HTTP/1.1 204 No Content
Request-Id: 3f866002-3640-11e6-8988-000000000000
X-Influxdb-Version: 0.13.0
Date: Sun, 19 Jun 2016 17:07:05 GMT
My-MBP:~ MB$
コマンドライン引数を実行するコードは正しいですか?なぜ私のjavaプログラムからコマンドが実行されていないのですが、端末から正常に動作していますか?
ありがとうございます。