3
Mac上にカスタム拡張をダブルクリックしてアプリケーションを開き、クリックしたファイルでアプリケーションが動作するJavaアプリケーションがあります。問題は、Appleが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();
}
}
アプリをデプロイします。 [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上で動作するはずです。 –