如何在单击按钮时从Java代码运行批处理文件

时间:2013-12-20 08:03:32

标签: java

单击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) {  
    }
}

3 个答案:

答案 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文件并且不想等待它完成,则不需要此行。