如何防止簡單的彈出應用在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 –