0

UNIXシェルにコマンドを送信するアプリケーションを作成しています。

cpおよびchmodコマンド(私が知っている)の発行に問題はありませんが、何らかの理由でmvコマンドは実際に私が指定したファイルを移動しませんか?

私のコードは次のように大文字と小文字を区別して表示できます。

    import java.io.IOException;
    public class ExecuteCommand {   
        public static void main(String[] args){
            ExecuteCommand exec = new ExecuteCommand("cp /some/directory/file.txt /some/directory/of/mine/");
            ExecuteCommand exec2 = new ExecuteCommand("chmod 666 /some/directory/of/mine/file.txt");
            ExecuteCommand exec3 = new ExecuteCommand("mv /some/directory/of/mine/file.txt /some/directory/of/mine/subDirectory/");
        }
        public ExecuteCommand(String command) {
            try {
                    System.out.println("EXECUTING!::" + command);       
                    Process child = Runtime.getRuntime().exec(command);             
            } catch (IOException e) {
            }
        }

    }

コマンドの%100が確実に処理されるように、コマンドの間にタイマーを入れてみましたが、進行はありません。

私のコードにはサンプル情報が含まれていることに注意してください。UNIXファイルシステムの構文の一部が正しくない場合は、ご容赦ください。問題のせいにしないでください。

さらに詳しい情報が必要な場合はお問い合わせください。できるだけ早く提供します

ありがとうみんな=)

4

1 に答える 1

0

サンプルコードの問題の1つは、例外を潰していることです。問題がある場合は、証拠を捨てています。

2番目の問題は、次のコマンドを起動する前に、1つのコマンドが完了するのを待っていないことです。後の方が前の仕上げに依存している場合、失敗します。

3番目の問題は、コマンドの戻りコード/終了コードをチェックしていないか、それらが生成する可能性のあるエラーメッセージを確認していないことです。エラーメッセージは、コマンドが機能しない理由を示している可能性があります...コマンドをフェッチして印刷するのが面倒な場合。

最後の(メタ)問題は、これが実際のコードではないことです...したがって、私たちが見ている問題があなたの質問の単なる成果物であるかどうかはわかりません。あまりお辞儀をしていないバージョンではなく、REALコードを提供してください。

于 2012-06-24T06:42:06.037 に答える