Запуск пакетного файла с Java, зарегистрированного в качестве службы Windows, с помощью Procrun - PullRequest
1 голос
/ 05 августа 2011

У меня есть пример 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

Пожалуйста, дайте мне знать, что мне здесь не хватает

Ответы [ 2 ]

0 голосов
/ 09 июля 2013

Чтобы выполнить пакетный файл из 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();
}
0 голосов
/ 05 августа 2011

Вы пробовали следовать

Runtime.getRuntime().exec("cmd /c start Start.bat");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...