路径名,文件名通过Java,Windows / Linux中的Runtime.getRunTime.exec()

时间:2012-12-20 17:13:11

标签: java linux path

我正在用Java编写Java Swing应用程序,作为ffmpeg命令的前端。它从用户输入文件夹和文件名,并添加更多在JTextField中不断显示的参数。用户可以在要调用的文本字段中编辑最终命令。

这适用于Windows和Linux:

Process ffmpeg = Runtime.getRuntime().exec(command, null, new File(current_working_folder));

命令是一个字符串。它的格式取决于操作系统,因此路径始终以完整(绝对路径)给出,斜杠适用于给定的操作系统。

在Windows和Linux中,可以通过将文件夹和文件名括在“....”中来执行ffmpeg命令。在Windows中,此格式最终通过Runtime.getRunTime.exec()。

起作用

但是,在Linux中,这不适用于Runtime.getRunTime.exec()。引号可能被误解为“......”。

对此有何建议?

1 个答案:

答案 0 :(得分:2)

尝试将命令作为数组传递,而不是使用此方法传递字符串:Runtime.exec(String[] cmdarray, String[] envp, File dir)

例如,而不是:

Runtime.getRuntime().exec("ffmpeg -i video_origine.avi video_finale.mpg", null, new File(current_working_folder));

使用:

Runtime.getRuntime().exec(new String[]{"ffmpeg", "-i", "video_origine.avi", "video_finale.mpg"}, null, new File(current_working_folder));