如何在java中执行命令行.exe文件

Ish*_*han 18 java syntax command-line

  1. 我想使用java程序将avi文件转换为3gp.
  2. 为此,我使用"EM Total Video Converter Command Line 2.43",命令为
    "C:\ EM TVCC> TVCC -f E:\ TestVideo\01.avi -o E:\ OutputFiles\target.3gp"
  3. 我有一个程序在网站http://www.rgagnon.com/javadetails/java-0014.html执行命令行exe文件,这是:

可执行文件的路径,其中包含空格

您可以包含要执行的程序的路径.在Win plateform上,如果路径包含空格,则需要将路径放在引号中.

public class Test {
  public static void main(String[] args) throws Exception {
    Process p = Runtime.getRuntime().exec(
       "\"c:/program files/windows/notepad.exe\"");
    p.waitFor();
  }
}
Run Code Online (Sandbox Code Playgroud)

如果需要传递参数,则对String数组更安全,特别是如果它们包含空格.

String[] cmd = { "myProgram.exe", "-o=This is an option" };
Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)

如果使用start命令并且要启动的文件的路径包含空格,则必须为start命令指定标题.

String fileName = "c:\\Applications\\My Documents\\test.doc";
String[] commands = {"cmd", "/c", "start", "\"DummyTitle\"",fileName};
Runtime.getRuntime().exec(commands);
Run Code Online (Sandbox Code Playgroud)

***任何人都可以帮我把上面的命令放在这个代码中吗?***我不知道将该命令放在上面的代码中的语法规则.请帮助我.

这是我正在使用的确切java代码:

public class Test {
    public static void main(String[] args) throws Exception {

        String[] cmd = { "C:\\Program Files\\E.M. TVCC\\TVCC.exe", "-f C:\\Program Files\\E.M. TVCC\\01.avi", "-o C:\\Program Files\\E.M. TVCC\\target.3gp" };
        Process p = Runtime.getRuntime().exec(cmd);
        p.waitFor();
    }
}
Run Code Online (Sandbox Code Playgroud)

Gle*_*len 24

你已经掌握了问题中的所有内容.这只是把它们放在一起的问题.

以下内容应该起作用:

public class Test {
    public static void main(String[] args) throws Exception {

        String[] cmd = { "C:\\E.M. TVCC\\TVCC.exe", "-f E:\\TestVideo\\01.avi", "-o E:\\OutputFiles\\target.3gp" };
        Process p = Runtime.getRuntime().exec(cmd);
        p.waitFor();
    }
}
Run Code Online (Sandbox Code Playgroud)

也就是说,像这样的硬编码路径不是一个好主意,你应该从某个地方读取它们; 程序的参数,属性文件等.

  • @ user243680,如果不能正常工作,你需要告诉我们它是如何工作的.你得到了什么错误?这会编译吗?它运行正常吗?它在运行时是否会出错?您应该编辑原始问题并将所有这些信息添加到其中. (2认同)