JavaApplicationStub с CFBundleDocumentTypes

Я пытаюсь использовать CFBundleDocumentTypes для соединения пользовательского расширения файла с моим приложением. Насколько я могу сказать, это, кажется, "работает" - JavaApplicationStub запускает мое приложение, когда я дважды щелкаю по файлу. Однако никакой обратный вызов не регистрируется через события ApplicationListener, которые я устанавливаю в Java.

Я использовал код, перечисленный в ассоциации файлов Значения по умолчанию Набора Установщик Производителя Пакета Java Mac OS X, чтобы сделать ассоциацию файлов, и сама ассоциация файлов кажется прекрасной, но кажется, как будто это - тупик приложения, пытающийся запустить файл, и таким образом перестало работать.

Я добавил код Apple ApplicatinListener к своему JAVA-приложению в (подобный http://developer.apple.com/mac/library/documentation/Java/Reference/1.5.0/appledoc/api/index.html?com/apple/eawt/Application.html), но не кажется, что мое приложение когда-либо возвращает вызов.

код подобен

Application.getApplication().addApplicationListener(
  new ApplicationAdapter() { 
    public void handleOpenFile(ApplicationEvent evt) {
      //some logging message here that I never get
    }
  }
);

Я должен, возможно, упомянуть, что также использую SWT...

Любая справка ценилась бы

1
задан YoYo 15 November 2018 в 15:20
поделиться

2 ответа

К сожалению, вы не можете использовать SWT и ApplicationListener eAWT одновременно. См. Эту ошибку SWT . SWT требует изменения от Apple в JVM, а затем мне нужно изменить SWT, чтобы использовать его.

Поскольку вас интересует событие открытия файла, теперь вы можете сделать это полностью в SWT на всех платформах. В SWT версии 3.6 есть новое событие SWT.OpenDocument , которое срабатывает при двойном щелчке файла для вашего приложения. См. Это сообщение в блоге и выполните поиск по запросу «SWT.OpenDocument».

1
ответ дан 2 September 2019 в 23:47
поделиться

Это не совсем конкретно для вашего вопроса, но на ум приходит несколько вещей:

1) Поскольку вы используете Apple JavaApplicationStub , диагностический вывод процесса запуска может быть получен следующим образом:

$ export JAVA_LAUNCHER_VERBOSE
$ ./your.app/Contents/MacOS/JavaApplicationStub

2) Вы можете посмотреть пример приложения Apple, OSXAdapter , упомянутый здесь .

3) Вот рабочий пример приложения SWT / Java / Mac.

1
ответ дан 2 September 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: