Перепланирование ScheduledExecutorService - PullRequest
0 голосов
/ 22 февраля 2012

Следующий фрагмент кода вызывается из ActionListener JMenuItem. Просто запускает файл jar.

ScheduledExecutorService schedulerExecutor = Executors.newScheduledThreadPool(2);
Callable<Process> callable = new Callable<Process>() {

    @Override
    public Process call() throws Exception {
        Process p = Runtime.getRuntime().exec("cmd /c start java -jar D:\\MovieLibrary.jar");
        return p;
    }
};
FutureTask<Process> futureTask = new FutureTask<Process>(callable);
schedulerExecutor.submit(futureTask);
schedulerExecutor.shutdown();               

System.exit(0);

Но проблема в том, что это исполнение только один раз. Не неоднократно. Это означает, что Process p = Runtime.getRuntime().exec("cmd /c start java -jar D:\\MovieLibrary.jar"); не вызывается во второй раз.

Как сделать правильно?

Любое предложение заметно. Заранее спасибо.

1 Ответ

1 голос
/ 22 февраля 2012

newScheduledThreadPool(2) не означает, что поток запускается дважды. Это размер бассейна. «отправить» задание дважды, если вы хотите запустить его во второй раз.

schedulerExecutor.submit(futureTask);
schedulerExecutor.submit(futureTask);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...