2013-09-05 31 views
0

我有一個Java應用程序,它是通過installanywhere爲Windows打包的,而通過jarbundler爲OSX打包爲可雙擊的.exe和.app應用程序。運行中的Java應用程序能否從操作系統接收註冊的文件類型事件?

我知道通過註冊表(窗口)或plist文件(OSX)關聯文件類型,使雙擊註冊文件將打開我的應用程序和文件。這在我的應用程序未運行時正常工作。

我的問題是關於我的應用程序已經運行的場景,我希望該實例接收和處理註冊文件類型的後續雙擊事件,即在應用程序的相同實例中打開更多文檔(如製表符在您的瀏覽器中。)

當前的行爲是操作系統啓動應用程序的新實例並在那裏打開文檔 - 不太理想。每當我雙擊JPG文件時,將我的問題想象爲一個新的Photoshop打開實例。

是否有一些關於如何爲Windows和/或OSX集成的文檔?

+0

您可能想稍微改寫一下該問題。這不是關於接收雙擊事件,而是關於接收打開已註冊文件類型的事件 – Cruncher

+0

檢出http://stackoverflow.com/questions/9321402/associate-file-format-with-my-program-java – higuaro

回答

2
  1. 在某個端口上打開Socket;如果不能去3
  2. 如果它連接,發送相同的端口上當前打開的文件並退出
  3. 打開ServerSocket和監聽連接(從程序的後續實例)
  4. 當連接建立,接收文件名並在另一個選項卡中打開它
+0

這是非常棒的。雖然有一點額外的工作來確保你連接的套接字實際上是你的應用程序,並且可能有一個算法,以確定哪個端口接下來檢查失敗。 – Cruncher

+0

這個工程!非常感謝你。 –

相關問題