「System.exec()」を使用して、Java プログラムで音声ファイルを書き起こすために、Amazon が提供する Python AWS Example を実行しようとしています。渡されたパラメーターを使用するようにプログラムのさまざまな部分を置き換えました。このコードは Mac では期待どおりに動作しますが、Windows (Tomcat Service の下) では、まったく同じ System.exec() が常に null を返します。
基本的な Python コードはこちら: https://docs.aws.amazon.com/code-samples/latest/catalog/python-transcribe-getting_started.py.html
認証の問題かもしれないと思いましたが、予想される場所、環境変数、さらには System.setProperty() ステートメントで構成ファイルを試して認証しました。それでも常にヌル。
Javaコードは次のとおりです。
process = Runtime.getRuntime().exec(cmdArray);
reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
コマンド配列には次のものがあります。
- パイソン
- Python 'py' ファイルへのパス
- パラメーター
次の行でコードがクラッシュします (null):
reader.readLine()
8MB RAM を使用するように Tomcat サービスをセットアップし、Tomcat を最新の 9 リリースに再インストールしました。
コマンドラインで個々のパラメーターを取得して実行すると、すべて問題ありません。
提案をいただければ幸いです。
前もって感謝します。