当前位置: 首页 > 面试题库 >

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

熊博远
2023-03-14
问题内容
  1. 我想使用Java程序将avi文件转换为3gp。
  2. 为此,我使用“ EM Total Video Converter命令行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平台上,如果路径包含空格,则需要将路径用引号引起来。

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

如果需要传递参数,则对String数组来说更安全,尤其是当它们包含空格时。

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

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

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

有人可以帮助我在代码中添加上述命令吗?我不知道将命令添加到上述代码中的语法规则。请帮助我。

这是我正在使用的确切的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();
    }
}

问题答案:

您已经解决了所有问题。这只是将所有内容放在一起的问题。

诸如此类的事情应该起作用:

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();
    }
}

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



 类似资料:
  • 我试图从maven命令行运行一个类,但得到以下错误。不知道我错过了什么。有谁能引导一下吗? pom.xml

  • 我正在创建一个脚本,我需要同时运行exe文件和命令。我做错了什么? 命令行需要完全如下,否则不起作用:C:\Program Files(x86)\Jenkins 谢谢

  • 问题内容: 我正在尝试在Java中为Linux / unix os执行awk命令,但问题是当我执行命令时它没有显示任何错误它。但是执行后没有输出,执行它需要几分之一秒,我不知道问题请帮忙。 该代码是 谢谢您的帮助 问题答案: 使用Java正确启动命令行过程并不容易。我建议您使用commons- exec 而不是自己尝试。 现在,您在命令行中有两件事需要特殊处理: AWK脚本周围的单引号。当您将每个

  • 问题内容: 我如何在Java URLConnection中实现以下curl命令 提前致谢 问题答案: 使用URLConnection的派生类(即HttpURLConnection),您可以轻松地做到这一点。 对于

  • 问题内容: 我想问一下如何多次执行1条命令 例如此代码 我要运行500次,该怎么办? 谢谢 问候威廉姆斯 问题答案: 使用循环, 请阅读基本的Java教程。可以在这里找到一个

  • 我谷歌并检查了SO是否有任何代码来查找任何其他进程的PID。有一个解决方案可以创建一个外壳脚本,其中包含命令“ps-eaf|grep my进程”,并从java执行该脚本。 但我想使用java ProcessBuilder或运行时方法执行。下面是我尝试过的代码,它不会将null作为输出。 该命令的输出为: 请让我知道我的代码中是否有任何错误,因为当我从shell手动搜索时,我确实得到了如下预期输出: