0

私は、ac プログラムを実行し、その入力ストリームを読み取り、出力ストリームに書き込むことができるマネージャー プログラムを Java でコーディングしたいと考えています。

クライアントは c exe を要求し、サーバーはその要求を次のように処理します。

  1. マネージャ プログラムが実行されます。
  2. ac プログラムを実行します。
  3. Cプログラムの出力をブラウザに送信できます(入力ストリーム)。
  4. ブラウザからの入力を受け入れ、C プログラムに提供できる必要があります。

ランタイムとプロセスを使用して C コードを実行しようとしました。しかし、それは例外を与えます

---------------------------
16 bit MS-DOS Subsystem
---------------------------
Error while setting up environment for the application. Choose 'Close' to terminate the application.
---------------------------
Close   
---------------------------

ヘルプ?

コード : java.io.* をインポートします。

class Dev
{
public static void main(String args[])
{
    try
    {
        Process p = Runtime.getRuntime().exec("dev.exe");
        InputStream is = p.getInputStream();
        // from her i'll do the stuff but it gives error.

    }
    catch(Exception e)
    {
        System.out.print("\n\n\t Error : "+e);
    }
}
}
4

1 に答える 1

1

を実装するクラスを作成し、この回答で説明されてRunnableいる を渡すことで、プログラムを実行できます。そこの答えには、プロセスの出力を で取得する方法も記載されています。入力を渡す場合は、コマンド ラインで文字列をパイプすることで実行できます。その回答の- Making 行に、次を追加できます。ProcessInputStreamProcess

//...
String someInput, command; // Set these to the appropriate values.
Process p = Runtime.getRuntime().exec("echo \"" + someInput + "\"|" + command);
//...

someInputこれはtoの値をパイプしますcommand。これはコマンド ラインに基づいており、技術的にはプラットフォーム固有ですが、Linux、OS X、および Windows では変更なしで動作するはずです。

于 2012-07-30T13:22:07.740 に答える