java SingleInstanceService并不总是有效

时间:2013-01-29 23:35:33

标签: java javascript jnlp java-web-start single-instance

我有一个javafx应用程序通过网页上的链接从web start启动。当我有一个正在运行的实例并尝试打开另一个实例时,SingleInstanceService工作正常。但是当没有实例运行时,我要么双击我的网页或桌面链接上的链接,就会启动两个实例。

Windows 7,Java 7 u11

在日志文件中,我可以看到,这两个实例的启动时间不到100毫秒。这是最后一个实例的一些控制台输出:

2013-01-29 14:03:17,246 [thread App-1]
 DEBUG App - SingleInstanceService found !

server running at port: 61065

temp: connect to: http://www.test.net/App.jnlp 61065

network: Connecting socket://127.0.0.1:61065 with proxy=DIRECT

temp: no server is running - continue launch!

basic: unique id: http://www.test.net//App.jnlp

basic: server port at: 61109

basic: getSingleInstanceFilename: C:\Users\me\AppData\LocalLow\Sun\Java\Deployment\tmp\si\http___www.test.net_App.jnlp-x86_61109

basic: file should be removed: C:\Users\me\AppData\LocalLow\Sun\Java\Deployment\tmp\si\http___www.test.net_App.jnlp-x86_61065

如您所见,web start实际上找到了第一个实例的Single Instance File,但只是将其删除。

我可以看到,Java控制面板也使用了这种技术。它还将单个实例文件放在C:\Users\me\AppData\LocalLow\Sun\Java\Deployment\tmp\si

当我在桌面上放置JCP的快捷方式时,如果我快速按两次回车键,我可以启动2个实例。

这是一个错误吗?我该如何解决?

0 个答案:

没有答案