2012-02-10 29 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