2013-04-30 52 views
6

標題是混亂的,但不知道如何用幾句話解釋:聽「打開文件與我的Java應用程序」事件在Windows

我有一個Java應用程序,讀取*。實例文件。我還添加了一個文件關聯感謝install4j所以我的應用程序啓動時,用戶雙擊擴展名爲*。實例任何文件

看來,install4j將在args[]文件路徑所以它應該是容易打開該文件並顯示在我的應用程序中。 但是如果應用程序已經運行會發生什麼?我只能允許應用程序的一個實例,我怎麼知道用戶正在打開一個文件?

我發現這一點:http://resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

但我還是不明白,我應該如何使用它,我應該在我的應用程序添加到偵聽此事件。我在哪裏可以找到一個例子?

+0

如果您無法通過Install4J找到解決方案,則始終存在[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)。 [文件服務演示](http://pscode.org/jws/api.html#fs)顯示瞭如何在初次啓動時以及打開新文件時使用它。 – 2013-04-30 12:18:46

回答

4

根據您鏈接到文件上,它看起來像你可以這樣做:

StartupNotification.registerStartupListener(new StartupNotification.Listener() { 
    public void startupPerformed(String parameters) { 
     System.out.println("Startup performed with parameters " + parameters); 
    } 
}); 

由於startupPerformed會從不同的線程調用,您需要確保處理這些通知的代碼線程安全的。

的文件也說:

對於多個文件,文件是由雙引號包圍,並用空格隔開。

所以你也需要自己解析參數字符串。

+0

聽起來不錯,我會盡力接受明天。謝謝@andrewdotn! – TheBronx 2013-04-30 22:37:42

+1

它的工作原理=)我爲我的項目添加了'i4jruntime.jar'作爲庫,並在'main()'中使用了您的示例代碼。事件在應用程序運行時被觸發,並且您打開一個文件,並且'parameters' var包含文件的絕對路徑。 – TheBronx 2013-05-02 07:25:35

相關問題