从JMenuItem的ActionListener调用以下代码。只需启动一个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");
。
我怎样才能做到正确?
任何建议都值得注意。提前谢谢。
答案 0 :(得分:1)
newScheduledThreadPool(2)
并不意味着该线程运行两次。
它是游泳池的大小。
如果你想第二次运行它,请“提交”两次任务。
schedulerExecutor.submit(futureTask);
schedulerExecutor.submit(futureTask);