2012-02-10 30 views
3

我們有一個Java應用程序在Mac上設置到您雙擊我們的自定義擴展,它會打開應用程序,然後將應用程序不會在你點擊文件的工作。問題是,我不能讓「打開事件」,蘋果在OSX使用,所以我不能得到的文件名(和位置)做的工作。我嘗試了所有可以用Google找到的東西,所以我必須做一些本質上錯誤的事情。抓住MacOSX上的openFileEvent(無法獲取文件名)

這裏是我的權利在調用啓動應用程序的類。我只是創建一個新課程,然後在幾行後抓取文件。我也試圖把等待/通知都可以看到,如果它是一個時間問題,但它只是無限期等待,所以我認爲這是我在正式拍攝時的方式有問題。任何幫助都是有用的。

import java.io.File; 
import java.util.List; 

import com.apple.eawt.AppEvent.OpenFilesEvent; 
import com.apple.eawt.Application; 
import com.apple.eawt.OpenFilesHandler; 

public class MacFiles implements OpenFilesHandler{ 

    private List<File> files; 

    public MacFiles() { 
     Application.getApplication().setOpenFileHandler(this); 
    } 

    public List<File> getFiles() { 
     return files; 
    } 

    public void openFiles(OpenFilesEvent event) { 
    files = event.getFiles(); 
    } 
} 
+0

部署應用程序。使用[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)。 JWS允許在JNLP(JWS啓動文件)中聲明對文件類型的興趣。文件名將被傳遞給main。這個[demo。](http://pscode.org/jws/api.html#fs)聲明瞭'.zzz'文件類型的興趣。這應該適用於OS X以及Windows和* nix。 – 2012-02-10 15:40:02

回答

0

你有編輯Info.plist中,包括CFBundleDocumentTypesUTExportedTypeDeclarations