Mac OS XにアプリケーションバンドルとしてデプロイされるJavaアプリケーションがあります。info.plistを変更して、処理できるファイルタイプを登録し、eAWTを使用してさまざまなリスナーを登録します(AppForegroundListener, AppReOpenedListener, OpenFilesHandler, OpenURIHandler, AppHiddenListener
)。
私のアプリケーションは次のように機能するはずです。
- アプリケーションをクリックして開始した場合は、「新しいドキュメントウィザード」がユーザーに新しいドキュメントの作成をガイドします。
- ユーザーがドキュメントをクリックして[プログラムから開く]を使用した場合、アプリケーションはそのドキュメントを開き、ウィザードの処理を実行しないようにする必要があります。
私の問題:
ドキュメントをクリックするか、アプリケーションをクリックして、アプリケーションが開始されたかどうかを確認するにはどうすればよいですか?
args[]
main(String[] args)
アプリケーションがどのように開始されたかに関係なく、fromは常に空です。- ドキュメントをクリックしてアプリケーションを起動した場合、リスナーが呼び出されます。直接開始された場合、イベントは呼び出されないようです。GUIをポップアップしない限り、アプリケーションは終了します。
- 非推奨のメソッドを使用できます
addApplicationListener
。この場合、アプリケーションのopenedイベントが発生しますが、このイベントはどちらの場合でも、 open fileイベントの前に配信されるため、役に立ちません。