使用Java代码调用exe
1使用场景
我现在使用eclipse+tomcat的架构建立了web server, 在这个web project中我需要建立一个定时任务,在定时任务中执行本地的一个C#工程生成的exe。
2Java代码
public class MyTask extends TimerTask {
public void run() {
System.out.println("call at " + (new Date()));
// TODO æ¤å¤?æ·»å? 具体任å?¡ä»£ç
try {
String cmdStr1="D:/download/SvmGridParameterTraining/SvmGridParameterTraining/EasySvmTrain/bin/Debug/EasySvmTrain newtrain.txt newtest.txt";
Runtime.getRuntime().exec("cmd.exe /c start "+cmdStr1);
}catch(Exception e){
e.printStackTrace();
}
}
}
getRuntime().exec()中的参数包括exe文件全路径和参数 (我后面的两个txt参数直接写在后面即可)
/c 的意思是执行之后关闭命令行。
3陷阱:exe工作路径
按以上代码执行后,发现程序并没有按预期执行。 经过测试发现 作为参数的newtrain.txt 和newtest.txt 为空。 所以我分析在程序的执行路径下并没有这两个文件。