Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于确定应用程序是否已完全关闭的设计模式_Java_Design Patterns - Fatal编程技术网

Java 用于确定应用程序是否已完全关闭的设计模式

Java 用于确定应用程序是否已完全关闭的设计模式,java,design-patterns,Java,Design Patterns,检查应用程序是否已完全关闭的最佳设计模式是什么。没有撞车吗? 似乎在当前目录中创建一个锁文件,并在正常关闭时删除该文件是一个好方法,或者是? 有更好的方法吗? 这个应用程序是java的,所以我计划在实例中添加一个shutdownhook来删除锁文件。这是一个好方法吗?添加一个关闭钩子对我来说似乎并不理想,因为我希望在应用程序崩溃时仍然可以执行一个关闭钩子。我只想让删除部分正常系统退出 但是,对我来说,拥有一个文件似乎是很合理的。一个警告——考虑如果你的应用程序同时打开两次或更多的话会发生什么。您

检查应用程序是否已完全关闭的最佳设计模式是什么。没有撞车吗? 似乎在当前目录中创建一个锁文件,并在正常关闭时删除该文件是一个好方法,或者是? 有更好的方法吗?
这个应用程序是java的,所以我计划在实例中添加一个shutdownhook来删除锁文件。这是一个好方法吗?

添加一个关闭钩子对我来说似乎并不理想,因为我希望在应用程序崩溃时仍然可以执行一个关闭钩子。我只想让删除部分正常系统退出


但是,对我来说,拥有一个文件似乎是很合理的。一个警告——考虑如果你的应用程序同时打开两次或更多的话会发生什么。您可能希望创建一个随机命名的文件,而不是一个具有固定名称的文件。

@Jon Skeet:我将实现单实例应用程序,这是否也依赖于锁定文件?@Jon Skeet:如果我创建一个随机命名的文件,并在重新启动时崩溃,我怎么知道我给文件起了什么名字?@user678070:如果你只允许一次启动一个实例,那么固定的名称就可以了。否则,您可以给文件一个模式,例如randombit.lock,并查找与该模式匹配的文件。@Jon Skeet:我刚刚试过,当应用程序异常终止时,似乎不会执行关机钩子。@Jon Skeet:似乎使用java首选项api可能比使用锁文件更好地保存此信息。可能是