无法通过Java运行命令,但是可以通过CMD CreateProcess错误= 2运行,系统找不到指定的文件



我无法将我的mp3转换为WAV,以便使用Java更轻松地进行数据操作。我可以打开一个命令提示符,并在调试时复制S中存储的精确字符串,这将正确创建WAV文件。代码在下面。我能够通过以这种方式构建字符串来使用FFMPEG,将一些MP3分为基于曲目列表的单独轨道。我重新安装了Windows 10,所以我假设它与此有关。我必须更改设置吗?为什么它会在命令提示符下运行,而不是在Java中运行?

package mp3towav;
import java.io.File;
import java.io.IOException;
public class Mp3towav {
    // mp3 folder
    public static final String MP3FOLDER = "C:\Users\Al\Documents\Sounds\PokemonOST\YellowOST\MP3";
    public static void main(String[] args) throws IOException {
        // Gets the mp3 files and converts them to wav
        File mp3folder = new File(MP3FOLDER);
        String[] mp3s = mp3folder.list();
        File f;
        String s; 
        for(int i = 0; i < mp3s.length; i++) {
            f = new File(mp3s[i]);
            s = ("ffmpeg -i " + MP3FOLDER + "\" + f.getName() + " " + (MP3FOLDER + "\" + f.getName()).replaceAll("MP3", "WAV").replaceAll("mp3", "wav"));
            Runtime.getRuntime().exec(s);
            System.out.println("test");
        }

    }
}

编辑

所以我从来没有使用Java使用路径,而是在Java中ffmpeg的绝对路径中添加。

我必须在ffmpeg bin中添加路径,包括文件名ffmpeg.exe,而不是让java依靠windows中的路径变量,即使ffmpeg在CMD窗口中正常工作。<<<<<<<<<<<<<<<<<<<<<</p>

最新更新