2017-05-09 69 views
-1

如何防止简单的弹出应用在PC上多次启动?如何防止多次运行spring应用程序?

@SpringBootApplication 
public class MyApp { 
    public static void main(String[] args) { 
     SpringApplication.run(MyApp.class, args); 
    } 
} 

如果仍在运行,用户不应该能够启动两次jar。

+1

无法启动两次,第二次将失败,因为通常端口已被使用(假定它是Web应用程序)。 –

+0

这不是一个web应用程序... – membersound

+1

然后添加在启动时写入文件的ApplicationPidFileWriter。在你的主体中,你可以检查该文件是否存在(在调用'SpringApplication.run'之前)并且做任何你喜欢的事情。你冷静地阅读它,看看过程是否真的活跃,如果是这样的话,删除文件,启动应用程序或启动它,炸毁等。请参阅http://docs.spring.io/spring-boot/docs/current/ reference/html/production-ready-process-monitoring.html –

回答

-1

开始后创建一个属性(在MyApp中)并检查文件是否存在。当它存在时不称为该行:

SpringApplication.run(MyApp.class, args); 

当应用程序终止时删除该属性。

+2

如果应用程序被终止并且文件未被删除,该怎么办? –

+0

你可以这样做:file.deleteOnExit();那没问题。感谢downvote:D –

+0

我的意思是说,'java'进程被系统杀死,你将无法以编程方式删除文件。在这种情况下,该文件将阻止应用程序启动。 –

相关问题