2013-03-15 61 views
6

我正在創建一個java swing應用程序,我需要將我的程序設置爲文件擴展名爲.mcsd(MIME類型text/mcsd)的默認程序。這必須在Windows上工作,如果它在OS X/Linux上也可以很好地工作。我對java有點新(3或4個月),所以請不要用各種專家的話來轟炸我。我看過associating a custom file extension with java app in windows,但我不想使用Java Web Start。如果可能的話,我還想知道如何設置該文件類型的圖標。我發現exe4j作爲創建.exe並計劃使用它的一種方式,但如果不是將convertinf轉換爲exe的最佳工具,或者有人知道更好的東西,隨時可以告訴我。另一件事:我需要能夠在程序打開後從該文件獲取數據。關聯文件類型與Java Swing應用程序

所以我的問題是:我該怎麼做?

+0

因爲我想有一個本機安裝程序,只是安裝程序,而無需打開網頁或任何東西。如果這不是我們開始工作的方式,那麼我很樂意使用它。 – KFox 2013-03-16 01:36:53

+0

我會在URL對象上使用'openConnection()'嗎?我在哪裏可以找到關於除docs.oracle.com之外的JNLP和JWS的教程,我發現這些教程有點難以閱讀(這並不令人困惑,外表只是我的頭)。 – KFox 2013-03-16 02:09:27

+0

那麼獲取打開的文件的數據/路徑呢? – KFox 2013-03-16 02:15:58

回答

8

部署應用程序。與Java Web Start

JWS提供了許多吸引人的功能,包括但不限於,閃屏,桌面集成,文件關聯,自動更新..

file services demo.對的一個例子聲明對.zzz文件類型感興趣的JNLP。

這是該協會是如何在JNLP聲明:

<association 
    extensions="zzz" 
    mime-type="text/sleepytime" /> 

JWS由Oracle提供,適用於Windows,* nix中& OS X.

..但我寧願不要使用Java Web Start。因爲我想有一個本地安裝程序,只需安裝該程序,無需打開網頁或任何東西。如果這不是如何(網絡啓動)的作品,那麼我很樂意使用它。

JWS通過網絡或網絡工作。但是,如果您可以從桌面調用打開URL(到JNLP),則不需要打開任何瀏覽器。

我可以在URL對象上使用openConnection()嗎?

我會使用DesktopBasicService API。

Desktop.getDesktop().browse(uri); 

boolean result = basicService.showDocument(url); 

正如BasicService demo所述。

在Java 6+中,調用顯示另一個web start啓動文件(例如BasicService.showDocument(another.jnlp))將直接傳遞給JavaWS,而不顯示瀏覽器窗口。

我希望這一直是Desktop API的真實,給出的JWS客戶端是該文件類型的默認消費。

相關問題