6

javascript から Java プログラムを実行し、出力を取得したいと考えています。

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メソッドを使用していることです。(パラメーターWshShell.Run(launch,0,true)を渡すことにより)コマンドプロンプトを非表示にできますが、Execメソッドを使用するとコマンドプロンプトを非表示にできません。このコマンドプロンプトを非表示にしたい。

この点で私を助けてもらえますか?ありがとう

4

2 に答える 2

10

はい、それはすべての 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);
于 2013-02-28T06:07:07.103 に答える