Я хочу ассоциировать с моим приложением определенный тип файла, поэтому, когда я дважды щелкаю по одному из файлов этого типа, мое приложение открывается. Это работает просто отлично, но файл, который я дважды щелкнул, не передается в качестве аргумента моей программе.
Если я, например, ассоциирую свое приложение с файлами txt
и дважды щелкаю todo.txt
, мое приложение открывается, но я понятия не имею, какой файл txt
я дважды щелкнул.
Из того, что я могу прочитать, это то, как предполагает работу в OS X, и вместо того, чтобы полагаться на поведение по умолчанию (как оно работает, например, на Windows), я должен использовать ApplicationListener.handleOpenFile();
из com.apple.eawt
. Однако, когда я пытаюсь это сделать, мне говорят, что мне нельзя это делать:
Ограничение доступа: Тип ApplicationListener недоступен из-за того, что ограничение на необходимую библиотеку /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar
В еще одном вопросе здесь один парень говорит, что нашел решение на каком-то китайском сайте, а другой говорит, что это не законно в соответствии с условиями лицензионного соглашения Java.
Я не могу найти никаких упоминаний об этом в Mac OS X Developer Library, и любые ссылки, которые могут показаться полезными на этом сайте о JAR Bundler просто посылает меня на мертвую страницу на сайте Apple's Developer site.
Что я упускаю? Должно ли это быть почти невозможно, даже если это банально для других операционных систем?
Наверное, стоит упомянуть... так как JAR
файлы не могут быть связаны с программами на OS X, я создал Прикладной пакет OS X с помощью JAR Bundler; инструмент Apple, созданный специально для того, чтобы иметь возможность рассматривать Java-приложения как родные приложения OS X. Использование этой утилиты позволило мне связать тип файла с моим приложением в первую очередь.