如何防止简单的弹出应用在PC上多次启动?如何防止多次运行spring应用程序?
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
如果仍在运行,用户不应该能够启动两次jar。
如何防止简单的弹出应用在PC上多次启动?如何防止多次运行spring应用程序?
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
如果仍在运行,用户不应该能够启动两次jar。
开始后创建一个属性(在MyApp中)并检查文件是否存在。当它存在时不称为该行:
SpringApplication.run(MyApp.class, args);
当应用程序终止时删除该属性。
如果应用程序被终止并且文件未被删除,该怎么办? –
你可以这样做:file.deleteOnExit();那没问题。感谢downvote:D –
我的意思是说,'java'进程被系统杀死,你将无法以编程方式删除文件。在这种情况下,该文件将阻止应用程序启动。 –
无法启动两次,第二次将失败,因为通常端口已被使用(假定它是Web应用程序)。 –
这不是一个web应用程序... – membersound
然后添加在启动时写入文件的ApplicationPidFileWriter。在你的主体中,你可以检查该文件是否存在(在调用'SpringApplication.run'之前)并且做任何你喜欢的事情。你冷静地阅读它,看看过程是否真的活跃,如果是这样的话,删除文件,启动应用程序或启动它,炸毁等。请参阅http://docs.spring.io/spring-boot/docs/current/ reference/html/production-ready-process-monitoring.html –