我正在尝试使用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);
}
}
}