1

我有一个 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 实际上找到了第一个实例的单实例文件,但只是将其删除。

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

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

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

4

0 回答 0