8

特定のファイル タイプをアプリケーションに関連付けたいので、この特定のタイプのファイルの 1 つをダブルクリックすると、アプリケーションが開きます。これは問題なく動作しますが、ダブルクリックしたファイルが引数としてプログラムに渡されません。

たとえば、アプリケーションをtxtファイルに関連付けて をダブルクリックtodo.txtすると、アプリケーションが開きますが、どのtxtファイルをダブルクリックしたかわかりません。

私が読むことができることから、これはOS X でどのように動作するはずであり、デフォルトの動作 (Windows などでの動作) に依存する代わりに、ApplicationListener.handleOpenFile();fromを使用する必要がありますcom.apple.eawt。ただし、これを試みると、許可されていないと言われます。

アクセス制限: 必要なライブラリ /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar の制限により、タイプ ApplicationListener にアクセスできません

ここでの別の質問では、ある人は中国の Web サイトで解決策を見つけたと言い、もう 1 人はJavaのライセンス契約の条件によれば合法ではないと言いました。

Mac OS X Developer Libraryでそれについての言及を見つけることができず、JAR Bundlerに関するこのサイトで役立つと思われるリンクが何であれ、Apple の Developer サイトのデッド ページに移動するだけです。

私は何が欠けていますか?他のオペレーティングシステムでは些細なことですが、これを行うことはほぼ不可能でしょうか?

おそらく言及する価値があります...JARファイルはOS Xのプログラムに関連付けることができないため、 JAR Bundler を使用してOS Xアプリケーションバンドルを作成しました。Java アプリケーションをネイティブ OS X アプリケーションとして扱えるようにするために特別に作成された Apple ツール。これを使用することで、最初にファイルの種類をアプリケーションに関連付けることができました。

4

1 に答える 1

2

私はOSXAdapter設定、約、終了機能に使用しました。内省的なアプローチを活用して、制限を回避できる場合があります。com.apple.eawt.ApplicationListener非推奨であるため、代わりに試すことができますcom.apple.eawt.OpenFilesHandler

于 2011-09-21T02:43:48.060 に答える