0

javaのffmpegを使用してflvファイルをmp3に変換しようとしています。

次のコマンドを実行しています

cmd.exe / C start / BELOWNORMAL / WAIT / B / ffmpeg -i "C:\ Documents and Settings \ user \ My Documents \ Bob Dylan --Spanish Harlem Incident(LD).flv" "C:\ Documents and Settings \ user \ My Documents \ Bob Dylan-スパニッシュハーレムインシデント(LD).mp3 "

「システムがファイルを見つけることができません」というエラーが表示されます。

次のコードを使用してコマンドを実行していますhttp://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4

Javaの外で実行すると、cmdコンソールから問題はありません

任意のアイデアをいただければ幸いです。

4

1 に答える 1

1

特殊文字を適切にエスケープしていますか?文字列としてコードに貼り付けるだけの場合は、次のようになります。

String command = "cmd.exe /C start /BELOWNORMAL /WAIT /B /ffmpeg -i \"C:\\Documents and Settings\\user\\My Documents\\Bob Dylan - Spanish Harlem Incident(LD).flv\"";

それでも機能しない場合は、次のようにコマンドを分離することをお勧めします。

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/C", "start", "BELOWNORMAL", "/WAIT", "/B", "ffmepg", "-i", "C:\\Documents and Settings\user\\My Documents\\Bob Dylan - Spanish Harlem Incident(LD).flv"});

これにより、ファイル名を引用する必要がなくなります。

または、読みやすさを向上させ、ファイルシステムの問題を除外するために、Fileクラスを使用して場所をラップすることができます。

    File f = new File("C:\\Documents and Settings\\user\\My Documents\\Bob Dylan - Spanish Harlem Incident(LD).flv");
    Runtime.getRuntime().exec(new String[] {"cmd.exe", "/C", "start", "BELOWNORMAL", "/WAIT", "/B", "ffmepg", "-i", f.getAbsolutePath()});
于 2012-08-14T16:13:51.957 に答える