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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法通过Java运行命令,但可以通过cmd运行它CreateProcess error = 2,系统找不到指定的文件相关的知识,希望对你有一定的参考价值。

我无法将我的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可执行文件的绝对路径。

答案

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

以上是关于无法通过Java运行命令,但可以通过cmd运行它CreateProcess error = 2,系统找不到指定的文件的主要内容,如果未能解决你的问题,请参考以下文章

无法通过Runtime.exec运行命令

请问:在windows下双击.jar文件无法运行,但cmd下-jar命令可以运行

编译没问题,cmd下运行java类文件时,提示:找不到或无法加载主类

在cmd里运行java无法运行显示错误

如何使用 CreateProcess 在 cmd 中执行命令?

CMD里面javac运行不了。。