0

Java で記述されたテスト フレームワーク内でプロセスを開始しようとしていますが、プロセスが何らかの形で動作しています。「ログイン」ボタンがフリーズします。この問題は、プロセスを開始したテスト フレームワークを閉じることで修正できます。

プロセスがユーザーによって開始された場合、問題はありません。(エクスプローラー、ビジュアル スタジオ、コマンドライン && テスト フレームワークのランタイム中)

ProcessBuilder pb = new ProcessBuilder(commands);
pb.directory(workingDirectory);

process = runtime.exec(commands, null, workingDirectory);

適切な結果を提供できません。プロセスの動作は、アプリケーション アイコンをダブルクリックして作成されるプロセスとは異なります。アプリケーションはネイティブの C++ で書かれています

Windows7 とまったく同じようにプロセスを開始するにはどうすればよいですか?

4

2 に答える 2

0

あなたの問題は、.exec コマンドの null である可能性があると思います。それが、渡したい環境変数です。

java.lang.Runtime クラスの javadoc を確認してください。

envp - 文字列の配列。各要素には name=value の形式の環境変数設定が含まれます。サブプロセスが現在のプロセスの環境を継承する必要がある場合は null です。

おそらく、Java プログラムを実行するときに、環境変数または何かが不足している可能性があります。

于 2012-05-22T02:21:56.490 に答える
0

ブロッキングの問題を解決するには、必ずプロセス ストリームを読んでください。

于 2012-06-01T14:44:54.890 に答える