0

Javaのコマンドを使用してsvn、作業コピーに関する情報を取得しています。

final Process exec = Runtime.getRuntime().exec(
    new String[]{"svn","info","--xml","/path/to/wc"}
);
ByteStreams.copy(exec.getErrorStream(), System.err);
// ... more code to read output

これにより、エラー出力が得られます

/path/to/wc
:  (Not a versioned resource)

ただし、ターミナル ウィンドウで同じコマンドを実行すると、必要な出力が得られます。また、ターミナルで実行しているときに環境を除外しようとしました:

env -i svn info --xml /path/to/wc

しかし、出力はまだ正しいです。Java から実行すると動作が異なるのはなぜですか?

4

1 に答える 1

1

実数/path/to/wcの最後には改行がありました。SVN のエラー出力に慣れていれば、次のように表示されたはずです。

/path/to/wc
:  (Not a versioned resource)

の前の改行に注意してください:

exec("readlink -m " + path)以前の を純粋な Javaに置き換えて、偶然これを見つけましたpath.getCanonicalName()

于 2012-09-21T12:46:17.350 に答える