0

Java コードからいくつかの Mac (Linux の?) コマンドを実行しようとしています。例として、この短いクラスを作成しました。このフォーラムで他の同様の質問を読んでみましたが、修正できませんでした。

エラーが発生します。

私は試した:

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("/Users/xxxx/Documents/ABC");

アクセス拒否メッセージが表示されます。以下のコードはエラーになります。

この質問 Want to invoke a linux shell command from Java は同様の問題について話しましたが、彼らが議論を終わらせたとは思いません。

Mac OS 10.7を使用しています。

public class Main {

    public static void main(String args[]) {

        try {

            Process p = Runtime.getRuntime().exec(new String[]{"bash","-c","ls /Users/xyz/Documents/ABC"});

            BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line=null;

            while((line=input.readLine()) != null) {
                System.out.println(line);
            }

            int exitVal = p.waitFor();
            System.out.println("Exited with error code "+exitVal);

        } catch(Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
        }
    }
}
4

1 に答える 1

0

フルパス「/bin/bash」を使用し、別のディレクトリを使用しましたが、完全に正常に動作します。したがって、コードはほぼ正しいです。パスとディレクトリのアクセス許可に注意する必要があり、フル パスを使用することをお勧めします。本当にありがとうございました。乾杯

于 2012-07-28T00:33:43.197 に答える