ProcessBuilderでバッチファイルを実行するメソッドがあります。バッチファイルを実行すると、ローカルに保存されているiniファイルの内容が更新されます。ProcessBuilderを実行した後のloadプロパティ
ProcessBuilderが実行された後、JsonObjectとして返す必要があるため、プロパティを取得するためにiniファイルを読み込む必要があります。
私はこれをすべて実行することができました。私の問題は、現在のプロパティではなく、ProcessBuilderを最後に実行したときのiniファイルの内容です。 ProcessBuilderの現在の実行からiniファイルの内容を取得するには、URLをリロードしてからバッチファイルを再度呼び出す必要があります。
私のiniファイルのプロパティをロードして、バッチファイルの実行後に更新された値を取得する方法を教えてください。
public void identify() throws IOException {
ProcessBuilder builder=new ProcessBuilder("cmd.exe","/c","StartSample.bat");
builder.directory(new File(PATH));
Process process = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()));
r.close();
Properties p = new Properties();
p.load(new FileInputStream("C:/PV/PVInfo.ini"));
String pvidNO1 = p.getProperty("PVIDNO");
String pvidNo2 = p.getProperty("PVIDNo");
String pvidNo3 = p.getProperty("PV-ID");
JSONObject jsonObject = new JSONObject();
jsonObject.put("PVIDNO", pvidNO1);
jsonObject.put("PVIDNo", pvidNo2);
jsonObject.put("pvId", pvidNo3);
System.out.println(jsonObject);
}
ホープ誰かがこの上で私を助けることができます。
は、これが私の方法です。
[process.waitFor()](http://docs.oracle.com/javase/8/docs/api/java/lang/Process.html#waitFor--)を使用しているようですが、解決策になります。 – SubOptimal