4

実行時に Linux コマンドを実行する簡単なプログラムを試してみました。しかし、次のプログラムはコンパイルされ、エラーなしで実行されますが、テキスト ファイルは意図したとおりに作成されません。このプログラムに問題はありますか?

import java.io.*;
class ExecuteJava
{
    public static void main(String args[])
    {
            String historycmd = "cat ~/.bash_history >> Documents/history.txt";
            try
            {
                    Runtime runtime = Runtime.getRuntime();
                    Process proc = runtime.exec(historycmd);
            }
            catch(Exception e)
            {
                    System.out.println(e);
            }
    }
}
4

2 に答える 2

2

Processが提供する関数のいくつかにアクセスしてみてください。私はexitValueから始めます。通常、a-1は何か問題が発生したことを示し、a0は特に悪いことが起こらなかったことを示します。

また、 InputStreamError Streamを試して、それらを完全に読んでください。いずれかが有益なフィードバックを持っているかどうかを確認してください。

それ以外は、andy256 がコメントで提案していることを試してください。Documentsディレクトリがプログラムの実行ディレクトリに存在することを確認してください。

于 2013-08-19T23:10:10.707 に答える
1

追加演算子>>は、コマンド シェルの一部として解釈されることを意図しています。使用する

String[] historycmd = 
           { "bash", "-c", "cat ~/.bash_history >> Documents/history.txt"};
于 2013-08-19T23:21:07.883 に答える