2014-07-16 50 views
0

我试图运行cmd命令。一切正常,但没有输出。我不明白为什么。 更新的代码cmd命令不能在java程序中运行

import java.io.*; 
import java.util.*; 

class CmdTest { 
    public static void main(String[] args) throws Exception { 
     String command= "ffmpeg -i D:\\test%d.jpg -vcodec mpeg4 outfile.avi"; 
     Process process; 
     System.out.println("first stmt"); 
     try 
     { 
      process = Runtime.getRuntime().exec(command); 
      Scanner kb = new Scanner(process.getInputStream()); 
      System.out.println("try block"); 
     } catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
     System.out.println("last stmt"); 
    } 
} 

我期待上述cmd命令的执行。编译和执行过程中没有任何问题。但是,命令不执行写入。

+0

你期待什么输出...? –

+0

请更具体 - 什么不按预期工作?应该发生什么? – radar

+1

尝试添加'process.waitFor();'也从错误流中读取。 –

回答

0

首先,你的代码应该给错误的原因是行Scanner kb = new Scanner(process.getInputStream());不会看到过程。 processtry-catch内定义。

其次,你有没有试过command windowffmpeg -i D:\\test%d.jpg -vcodec mpeg4 outfile.avi?如果没有,尝试一下。 /停止

三的,而不是运行该命令尝试运行像dir一些简单的命令,pwd

四,把一些System.out.println("say something")里面的代码,那么你就可以看到它失败。

+0

第一,索里,但其并没有给出任何错误,先生 第二,我已经试过在cmd中它的做工精细 第三的代码,我已经试过他们,他们正在工作的罚款 第四。我有根据你的sugesstion更新代码,但nthing会正确...... –

+0

我复制并运行你的代码,它打印出'第一个stmt \ n尝试块\ n最后stmt'。如果您正在打印输出,那么问题与'ffmpeg'命令有关。 – smttsp

+0

试试这个,'command = cmd.exe/C start ffmpeg -i D:\\ test%d.jpg -vcodec mpeg4 outfile.avi;'。我有一个工作'ffmpeg'命令,我试了一下,它的工作。当你说'cmd.exe/C start'时,java打开一个'cmd'并在命令窗口中运行你的命令。 – smttsp