2017-02-21 10 views
0

私のSpringアプリケーションでRuntime.exec(…)メソッドを実行しようとしましたが、その後getInputStream()メソッドから常に空の結果が得られました。しかし、コアJavaアプリケーションとして実行するとうまくいきます。 Spring環境で実行する必要がある他の実装はありますか?前もって感謝します。Spring環境でRuntime.exec()メソッドが常に空を返します

  • 春バージョン:4.2.1.RELEASE

  • コモンズ-ioのバージョン:2.4

    try { 
        Process p = Runtime.getRuntime().exec(new String[] {"sh", "-c", "spamc < abcd.txt"}); 
        String spamResponsexx = IOUtils.toString(p.getInputStream()); 
        log.debug("Spam Response : " + spamResponsexx); 
    } catch (Exception e) { 
        e.printStackTrace(); 
        log.error("", e); 
    } 
    
+2

エラーストリーム( 'p.getErrorStream()'も参照してください)、そのストリームにメッセージがある可能性があります。 –

+0

あなたの知覚された問題には春が関係しているとは考えにくいです。 – Magnus

+0

おそらく、現在のディレクトリが異なるため、 'abcd.txt'が見つからない(または' abcd.txt'という名前の別のファイル)... – Holger

答えて

0

たぶん、ユーザー権限の問題。私は同様のタイプのシナリオでも働いています。

  1. この場合、両方のサービスは、そうでなければ「spamc」ライブラリファイルの場所は「.bashrcに」ユーザー(XYZ)HOMEパスをポイントする必要がありますと」の.bashrcをリセットし、同じユーザー(XYZ)
  2. として実行する必要があります'
関連する問題