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