Как выполнить командный файл для перезапуска службы на windows, щелкнув JMenuItem? - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь создать пользовательский интерфейс и запустить пакетный файл, который перезапустит службу, работающую в фоновом режиме, просто щелкнув пункт меню. Я могу сделать меню и добавить пункт меню так:

JMenu menu = new("menu");
JMenuItem restart_service= new JMenuItem("Restart service");
        menu .add(restart_service);

Затем я добавил слушателя в пункт меню для запуска командного файла:

    restart_service.addActionListener (new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent ae) {
            openWebPage(
                    "file://path to bat file/batchfile.bat");
        }
        public void openWebPage(String url) {
            try {
                java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
            } catch (java.io.IOException e) {
                System.out.println(e.getMessage());
            }
        }           
    });

Тем не менее, каждый раз, когда я пытаюсь это сделать, появляется окно cmd и выдается «Доступ запрещен». Хотя я изменил настройку для запуска файла без прав администратора. Не уверен, как это исправить или если есть способ извинить пакетные файлы от имени администратора, нажав пункт меню. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 09 марта 2020

Попробуйте это.

try{    
Process mp = Runtime.getRuntime().exec("BAT LOC");
mp.waitFor();
}catch( Exception procRunException ){
}
...