无法通过Java运行命令,但可以通过cmd运行它CreateProcess error = 2,系统找不到指定的文件

问题描述 投票:-1回答:1

我无法将我的mp3转换为wavs,以便使用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使用PATH,而是添加了Java中ffmpeg可执行文件的绝对路径。

java ffmpeg mp3 wav
1个回答
0
投票

我必须添加包含ffmpeg.exe的bin的完整路径,而不是让Java依赖于Windows中的PATH变量,即使ffmpeg在CMD窗口中正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.