我有一个示例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();
}