2010-12-27 10 views
0

私はjspページにテキストフィールドとボタンがあります。また、私は別のプロジェクトの瓶を持っています。 ボタンをクリックすると、jarのMAIN.classが呼び出され、プログラムは独立したウィンドウ(JFrame)で実行されます。 ユーザーがプログラムを終了して終了すると、終了時に生成されたプログラムの文字列を取得してテキストボックスに貼り付ける必要があります(文字列はHTMLコード)外部の実行プログラムから文字列を取得

誰もこの問題を抱えていますか?溶液? ありがとう アレックス

+0

あなたの質問は私には分かりませんが、私は詳細を教えてください '私は終了時に生成され、テキストボックス(文字列はHTMLコードです)に貼り付けられるプログラムの文字列を取得する必要があります' –

+2

あなたがサーバーマシン上でアプリケーションを起動してからクライアントマシン上にアプリケーションを起動するあなたの質問はあなたに混乱があるかもしれないことを示唆しています。クライアント側でやることに関しては、アプレットやJWSの起動フレームでHTMLを生成する部分を行う方がよいでしょう。どちらもサーバーと直接通信でき、HTMLフォームが冗長化されます。 –

答えて

0

あなたの「別のプロジェクトからのジャー」がその出力をスタンドアット出力にプリントする場合。以下のコードを使用して、サーブレットで出力を取得することができます。

  try { 
       Runtime rt = Runtime.getRuntime(); 
       //Process pr = rt.exec("cmd /c dir"); 
       Process pr = rt.exec("{EXTERNAL_JAR_EXECUTE_COMMAND}"); 

       BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream())); 

       String line=null; 

       while((line=input.readLine()) != null) { 
        System.out.println(line); 
       } 

       int exitVal = pr.waitFor(); 

      } catch(Exception e) { 
       System.out.println(e.toString()); 
       e.printStackTrace(); 
      } 
+0

素晴らしい作品です!しかし、JFRAMEの終了時にStringをバッファに送る方法は?私はバッファに書き込もうとしましたが、何も起こりません。コードはwhileループに留まりますか?おかげで –

+0

それはどうですか?コードは、読み込み行が終了するまで保持されます。私の意見では、この質問を閉じて、あなたのコードに新しい質問であなたの質問をしてください。あなたのコードに従ってあなたを助けるかもしれません。 –

+0

OK i figure out: ByteBuffer bb = ByteBuffer.wrap(out.getBytes()); \t ここで、outは私の文字列です しかし、あなたのコードはreadline()= nullを待っています! 私はBUFFERにnullを送信しようとしましたが、何も起こりません。だから私はこのループをどのように終了するのですか?おかげで –

0

これはこれまで実稼働環境では動作しません。 JavaコードはWebサーバー(サーバー側)で実行され、HTMLコードはWebブラウザー(クライアント側)で実行されます。基本的には、SwingはWebブラウザではなくWebサーバーでのみ実行されます。ウェブサーバとウェブブラウザの両方が物理的に同じマシンで(ローカルに開発しているときと同じように)実行されている場合にのみ動作します。

AppletこれをHTTPサーブレットとやりとりするか、SwingのものをHTMLに変換してください。そのため、手間がかかりません。

関連する問題