2016-05-17 2 views
1

プロセスからリダイレクトエラーを放棄したい 私はまた、apacheにNullWriterの存在を知っています。 しかし、プロセスはFileだけを受け入れますか?unixの/ dev/nullのようなビットバケットへのパスを取得する方法はありますか?

私の知る限りでは、を/ dev/nullのような特殊なファイル(ヌルデバイス)は、インスタンスのWindowsでの別のパスを、持っている...

だから私の質問は、次の場合ですとどのように私は、このようなパスを得ることができますか? それ以外の場合は、OSまたはプラットフォームごとに手動で設定する必要がありますか?

私のコードは、私がbutBucket = getNullDevice()1行目 ファイルを変更したい

File bitBucket = isUnix())? new File("/dev/null"): new File("NULL"); 
ProcessBuilder pb = new ProcessBuilder("mpirun", "-np", 100, "mpi-tip").redirectError(bitBucket); 
pb.start(); 

です。 // このような。

のみ場合ProcessBuilderをaccpets作家、私もNullWriter使用することができます...

+0

あなたがしたいことははっきりしません。トピックでは、「ビットバケットへのパスを取得する」と説明するために、「リダイレクトエラーを放棄する」ための解決策が必要です。達成したいことは何ですか?エラーストリームの出力(stderr)を子プロセスからリダイレクトしますか? – SubOptimal

+0

リダイレクションは私の目的であり、ビットバケットへのパスを取得する方法を尋ねたいのです。 – kensuke1984

+0

「ビットバケット」で何を意味するのかを説明する価値があるかもしれません。問題を示す小さなコードスニペットを表示します。 – SubOptimal

答えて

1

はたぶん、あなたはまだより多くの情報を提供する必要があります。私はmpirunからのエラー出力を抑制したいと仮定します。デフォルトでは、起動されたプロセスのstdoutstderrへの出力は、JVMの出力にマージされません。

デモ

to_stderr.shためスニペットの下の検索 - stdoutに印刷ヘルパースクリプトとstderr

#!/bin/bash 
(>&2 echo "to stderr") 
echo "to stdout" 

はJavaでだから今スクリプト

# supress output to stdout 
./to_stderr.sh > /dev/null 
to stderr 

# supress output to stderr 
./to_stderr.sh 2> /dev/null 
to stdout 

を確認

class Main { 
    public static void main(String[] args) throws Exception { 
     ProcessBuilder pb = new ProcessBuilder("./to_stderr.sh"); 
     pb.start(); 
    } 
} 

コンパイルして実行

javac Main.java && java Main 

コンソール上でこの希望出力されていないものは、限り、あなたは、プロセスからのエラーまたは出力をリダイレクトしません。

なぜ/dev/nullにリダイレクトしたいのですか?

+0

例をありがとうございます。 とはい、...私はそれを抑制したいです。あなたを混乱させて申し訳ありません。 mpi実行ファイルからの出力を推奨するようにスローするスクリプトを使用する必要がありますか? #!bin/bash mpirun mpiexe>/dev/null – kensuke1984

+0

@ kensuke1984私の例では、スクリプトは 'mpirun'コマンドの代わりに使用されていました。私の例のJavaスニペットをとり、 '新しいProcessBuilder(" ./ to_stderr.sh ");を' new ProcessBuilder( "mpirun"、 "-np"、100、 "mpi-tip");で置き換えてください。 'mpirun'実行から' stderr'への出力を見るべきではありません。 – SubOptimal

+0

私は理解します。私は何とかredirectErrorのデフォルト値をINHERITと誤解していますが、それはPIPEです...私を導いてくれてありがとう。私はPIPEの仕組みについてはわかりませんが、私は説明を探します。もう一度ありがとうございます。 – kensuke1984

関連する問題