无法通过Java命令运行,但可以通过cmd运行命令CreateProcess error=2,系统找不到指定的文件
Unable to run command through Java, but can run it through cmd CreateProcess error=2, The system cannot find the file specified
我无法将我的 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使用PATH,而是在Java.
中添加了ffmpeg可执行文件的绝对路径
我必须将路径添加到 ffmpeg bin,包括文件名 ffmpeg.exe 而不是让 Java 依赖 windows 中的 PATH 变量,即使 ffmpeg 在命令 window.
我无法将我的 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使用PATH,而是在Java.
中添加了ffmpeg可执行文件的绝对路径我必须将路径添加到 ffmpeg bin,包括文件名 ffmpeg.exe 而不是让 Java 依赖 windows 中的 PATH 变量,即使 ffmpeg 在命令 window.