单击jsp页面中的按钮,我想运行批处理文件。我编写了这段代码来执行方法中的批处理文件,但它不起作用。 Plz帮助我。
public String scheduler() {
String result=SUCCESS;
try {
Process p = Runtime.getRuntime().exec("cmd /c start.bat", null, new File("C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\start"));
System.out.println("manual scheduler for application.."+p);
} catch(Exception e) {
}
}
答案 0 :(得分:1)
添加此代码,
batFile.setExecutable(true);
//Running bat file
Process exec = Runtime.getRuntime().exec(PATH_OF_PARENT_FOLDER_OF_BAT_SCRIPT_FILE+File.separator+batFile.getName());
byte []buf = new byte[300];
InputStream errorStream = exec.getErrorStream();
errorStream.read(buf);
logger.debug(new String(buf));
int waitFor = exec.waitFor();
if(waitFor==0) {
System.out.println("BAT script executed properly");
}
答案 1 :(得分:0)
根据this,以下代码应该有效(只需删除cmd /c
):
public String scheduler() {
String result=SUCCESS;
try {
File f = new File("C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\start")
Process p = Runtime.getRuntime().exec("start.bat", null, f);
System.out.println("manual scheduler for application.."+p);
} catch(Exception e) {
}
}
答案 2 :(得分:0)
目前尚不清楚您是想要运行bat文件还是想等待它运行。
//需要bat文件所在的位置,例如。 K:/ MyPath / MyBat.bat在我的情况下 //如果bat文件在classpath中,那么你可以提供直接bat文件名MyBat.bat
**Runtime rt = Runtime.getRuntime() ;
Process batRunningProcess= rt.exec("cmd /c K:/MyPath/MyBat.bat");**
//这是等待进程完成 //如果进程已完成,那么值将为0
**final int exitVal = lawTab_Indexer.waitFor();**
//如果您只想运行bat文件并且不想等待它完成,则不需要此行。