6

JavaからProcessクラスでシェルコマンドを呼び出すと、出力されます

"stty: standard input: Invalid argument" 

コマンドが正しいか間違っているかに関係なく(シェルコマンドの通常の出力も表示されます)。シェルでshellコマンドを実行すると、そのようなエラーメッセージは表示されません。

コマンドは次のようなものです。{"/bin/csh", "-c", "echo hello"}

4

4 に答える 4

8

、、またはsttyからコマンドを呼び出しています。標準エラーをにリダイレクトする必要があります。.profile.bash_profile/dev/null

stty blah blah blah 2>/dev/null

sttyは、Javaがシェルアウトで提供する疑似ttyを処理できません。

于 2010-03-29T08:18:46.913 に答える
4

cshのオプションを使用して-f、.chsrcファイルと.loginファイルの読み取りを無効にしてみてください。

    {"/bin/csh", "-cf", "echo hello"}
于 2010-03-29T09:09:08.163 に答える
1

java.lang.Processのドキュメントを引用します。

「プロセスを作成するメソッドは、ネイティブウィンドウプロセス、デーモンプロセス、MicrosoftWindowsのWin16/ DOSプロセス、シェルスクリプトなど、特定のネイティブプラットフォームの特別なプロセスではうまく機能しない場合があります。作成されたサブプロセスには、独自のターミナルやコンソールがありません。 。」

代わりに、 java.lang.ProcessBuilderが必要な場合があります。

于 2010-03-29T08:24:24.530 に答える
0

ここを見てください。私はなんとかこのようないくつかのコマンドを実行することができました

于 2010-03-29T08:48:33.980 に答える