0

次のコードを使用して、Java アプリケーションから Windows コマンドを実行します。次のようないくつかのWindowsコマンドを試しverましたが、それは私と一緒に動作します。アプリケーションで使用する必要があるコマンドはopenssl. 私は Windows で作業しているので、Windows 用にダウンロードopensslしました。コマンド ライン ウィンドウで次のコマンドを試しましたが、正常に動作します。しかし、Java アプリケーションから試してみると、得られるものはすべて完了です。出力が得られません。誰でも助けることができますか?

コードは次のとおりです。

import java.io.*; 

public class DebianChecker 
{ 
public static void main(String args[]) 
{ 
try 
{ 
Process p=Runtime.getRuntime().exec("cmd /c openssl s_client -connect
gmail.com:443"); 
p.waitFor(); 
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line=reader.readLine(); 
while(line!=null) 
{ 
System.out.println(line); 
line=reader.readLine(); 
} 

} 
catch(IOException e1) {} 
catch(InterruptedException e2) {} 

System.out.println("Done"); 
} 
}
4

1 に答える 1

0

行p.waitFor();を削除してみてください。

waitFor()は、プロセスが終了するのを待ちます。したがって、InputStreamを取得するまでに、プロセスはすでに完了しています。

于 2012-12-02T23:36:03.027 に答える