运行批处理文件从Java注册为Windows服务使用Procrun



我有一个示例Java应用程序,我使用Procrun将其注册为服务。我试图执行批处理文件从我的应用程序

public class Service {
    public static void main(String args[]) throws IOException, InterruptedException {       
        if(args.length>0){
            if(args[0].equals("start")){
                ProcessBuilder builder = new 
                    ProcessBuilder("cmd","/c","start","Start.bat");
                builder.start();                
            }else if(args[0].equals("shutdown")){
                ProcessBuilder builder = new 
                    ProcessBuilder("cmd","/c","start","Stop.bat");
                builder.start();                    
            }
        }       
    }
}

当我启动服务时,它成功启动,但它没有在我的Windows 7上启动批处理文件。

批处理文件的内容如下

Start.bat

@echo off
echo I am started
pause

请让我知道我在这里错过了什么

您是否试过遵循

Runtime.getRuntime().exec("cmd /c start Start.bat");

要从java应用程序执行批处理文件,请尝试这段代码:

//"D://bin/"是我的。bat

的位置
   File dir = new File("D:/bin/");
try {
    // sign.bat if my actual file.
    Runtime.getRuntime().exec("cmd.exe /c sign.bat", null, dir);   
      try {
        Thread.sleep(100);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

最新更新