2013-02-28 25 views
5

javascriptからJavaプログラムを実行して、出力を取得したいと考えています。WshShell.Execメソッドを使用してコマンドプロンプトウィンドウを非表示にしたい

Intailly私は以下のコードで試してみました:

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c java -classpath . HelloWorld "; 
var cmdRun = WshShell.Run(launch,0,true); 

をRunメソッドを通じて、私はクラスの出力を得ることはできませんよ。

は、私は以下のコードで試してみました:
WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c p java classpath . HelloWorld "; 
var cmdRun = WshShell.Exec(launch); 
while (cmdRun.Status == 0) // wait for the command to finish 
{ 
sleep(100); 
} 
var output = cmdRun.StdOut.ReadAll(); 
alert(output); 

は、今私は、可変出力での出力を得ることができています。

私の問題はRunメソッドを使用しています。私はcommandpromptを隠すことができます(パラメータWshShell.Run(launch、0、true)を渡して) ここではExecメソッドを使用してcommandpromptを非表示にできません。私はこのコマンドプロンプトを隠しておきたい。

この点についてお手伝いできますか? ありがとう

答えて

9

はい、それはすべてのwshスクリプタを邪魔します。 wshExecオブジェクトを非表示にする方法はありません。この場合は.Runのみが許可されますが、この場合はStdOutは許可されません。まもなく、唯一の方法は出力をファイルにリダイレクトすることです。

WshShell = new ActiveXObject("WScript.Shell"); 
var launch ="cmd.exe /c java -classpath . HelloWorld > output.txt"; 
var cmdRun = WshShell.Run(launch,0,true); 
+0

あなたのコンホーメーションのおかげで私はそれも考えました! – user2118354

+0

ええと、私はちょうどStackOverflowへの歓迎と言うことを忘れていました;-)そして、ところで、あなたは有効な答えを受け取ります、それは両側、私とあなたにこの場合ポイントをポンピングしますが、それはまた、質問の答えを知るためにフォーラムの読者を休息;-) –

+0

ありがとうパナヨット!!私はあなたが示唆したようにしました。 – user2118354

関連する問題