我正在編寫跨平臺的基於Swing的應用程序,其中我想利用已註冊到OS的文件關聯。在Java應用程序中使用文件關聯
因此,我已經到了可以點擊文件並加載我的應用程序的程度,但我需要知道的是如何讓我的應用程序知道啓動它的文件的位置,然後查詢內容。
有沒有更進一步的文件關聯註冊?或者Java可以爲我做這件事嗎?
我正在編寫跨平臺的基於Swing的應用程序,其中我想利用已註冊到OS的文件關聯。在Java應用程序中使用文件關聯
因此,我已經到了可以點擊文件並加載我的應用程序的程度,但我需要知道的是如何讓我的應用程序知道啓動它的文件的位置,然後查詢內容。
有沒有更進一步的文件關聯註冊?或者Java可以爲我做這件事嗎?
我並不積極,但我期望通過文件點擊處理的文件的名稱將最終在您的main()
方法的參數中結束。你有沒有試過/檢查過?
執行此操作的一種方法是讓文件關聯通過腳本或批處理文件運行Java應用程序,並讓批處理文件將命令行參數,環境變量或Java屬性傳遞給文件的路徑名。
擴展可以鏈接到應用程序,您可以在安裝過程中設置註冊表項。你需要哪些鍵記錄在這裏:
http://support.microsoft.com/?scid=kb%3Ben-us%3B185453&x=6&y=11
從Java您不能訪問直接的方式在Windows註冊表中。 使用運行時,你可以做這樣的事情 http://www.rgagnon.com/javadetails/java-0480.html
如果是在Windows(沒有指定):無論你指定在其中註冊的文件類型的應用程序路徑
在註冊表中添加到"%1"
。這是一個特殊的參數,Windows將填入被點擊文件的路徑。因此,您的註冊表項看起來像c:\path\to\app.exe "%1"
沒有它的跨平臺。 – Dan 2010-01-11 20:09:43
Windows上有兩個命令可以幫助assoc和ftype,因此您無需執行髒衣服操作註冊表。使用例如java.lang.Process調用這些命令。 http://www.rgagnon.com/javadetails/java-0592.html
你打算只在Windows上使用它嗎? – stacker 2010-01-11 16:54:24
否 - 跨平臺,iv修復了這個問題 – Dan 2010-01-11 20:08:14
你在Linux和OSX上做過嗎? – KrzyH 2013-07-15 13:32:51