Webページのリンクを介してWeb StartからJavafxアプリケーションを開始しました。実行中のインスタンスがあり、別のインスタンスを開こうとすると、SingleInstanceService は正常に動作します。しかし、インスタンスが実行されていないときに、Web ページのリンクまたはデスクトップ リンクをダブルクリックすると、2 つのインスタンスが開始されます。
Windows 7、Java 7 u11
ログ ファイルを見ると、2 つのインスタンスが 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 へのショートカットをデスクトップに配置すると、Enter キーを 2 回すばやく押すと、2 つのインスタンスを起動できます。
これはバグですか?どうすれば修正できますか?