ポート番号を提供するJavaアプリケーションを作成しています。特定のポートでリッスンしているアプリケーションの。
ポート番号を取得したい。ポート 10001 でリッスンしているアプリケーションの
Process p = Runtime.getRuntime().exec("lsof -i:10001 | awk '{print $2}'");
InputStream is=p.getInputStream();
byte b[]=new byte[is.available()];
is.read(b,0,b.length);
System.out.println(new String(b));
p.waitFor();
System.out.println("exit: " + p.exitValue());
p.destroy();
lsof -i:10001 | awk '{print $2}'
これをシェルで実行すると、出力が得られます
PID
8092
しかし、Javaアプリケーションでは、それは私に与えますexit: 1
. java で実行しないのはなぜですか? また、ポート番号のみを取得できますか? つまり、PID 8091
私が欲しいのではなく8092