Runtime.exec()用于运行cmd脚本的Java

时间:2016-12-22 08:09:28

标签: java cmd

我正在尝试使用Runtime来运行一个简单的cmd脚本。下面我有两个例子。当我在cmd shell中手动运行命令字符串时,它们会产生所需的结果。当我运行此程序时,命令1工作,命令2不工作。有没有什么特别的原因为什么第二个命令不能通过java工作而第一个命令呢?

没有错误消息或例外。

编辑:如果我添加执行日志,第二个命令有效,即将其更改为下面的行。为什么会这样?

String cmd2 = "C:/Users/evans/Documents/NetBeansProjects/Repricer/RunDownload.cmd >> log.txt";

执行日志是这样的:

// Execution log
C:\Users\evans\Documents\NetBeansProjects\Test>"C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE" "C:\Users\evans\Documents\Book Business\Building Reports\Book Business.accdb" /x Download  

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Test {

    public static void main(String[] args) {
        try {
            // 1
            String cmd = "wscript C:/Users/evans/Documents/NetBeansProjects/Repricer/RunExcel.vbs DownloadExcel";
            Runtime.getRuntime().exec( new String[] {"cmd.exe", "/c", cmd} );

            // 2    
            String cmd2 = "C:/Users/evans/Documents/NetBeansProjects/Repricer/RunDownload.cmd";
            Runtime.getRuntime().exec( new String[] {"cmd.exe", "/c", cmd2} );
        } catch (IOException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

0 个答案:

没有答案