Sto scrivendo il codice per utilizzare l'API Win32 per rilevare la versione di java. Per esempio.riga di comando "java -version" invierà il risultato a stdOut o stdErr?
Fondamentalmente, io sto seguendo MSDN Creating a Child Process with Redirected Input and Output https://msdn.microsoft.com/en-us/library/ms682499%28VS.85%29.aspx
string GetJavaVersion(string sJavaExePath) {
}
Questo è il codice pseudo client:
ASSERT(GetJavaVersion("C:\Program Files (x86)\Java\jdk1.7.0_17\bin\java.exe") == "1.7.0_25");
posso ottenere il risultato come:
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode, sharing)
Tuttavia, il risultato viene inviato indietro da stdErr, mentre dovrei tornare da stdOut.
Ha senso ricevere la stringa da stdErr?
Perché? Dove dice che va in stdout? Qual è la base per le tue aspettative? – EJP
Non conosco la conversione dell'uso di stdout o stderr da parte di Java. La mia base è durante la corsa, lì "sembra" non è successo nessun errore, quindi è molto intuitivo aspettarsi che passi allo stdout. – milesma