Я разрабатываю приложение java, используя openjfx
модули. Теперь я хочу использовать DirectoryChooser
, чтобы позволить пользователю выбрать несколько файлов в качестве входных данных (код ниже). Каждый раз, когда я запускаю приложение из IDE, происходит сбой, за исключением ниже. Под падением я подразумеваю полное окончание (не замораживание).
Я также попробовал некоторый пример кода, такой как this , чтобы выяснить, есть ли что-то не так с моей реализацией, но каждый обнаруженный мной пример вызывал ту же проблему.
Я не уверен, является ли это общей проблемой / ошибкой, потому что я видел старые ошибки в oracle баг-трекере, но все они отмечены как исправленные.
Я был бы рад, если бы кто-то мог помочь с этим. Я бы даже был рад обходному пути, который просто избегает DirectoryChooser
, если таковой имеется.
Шаги для воспроизведения :
- Создайте небольшое приложение с демонстрационным кодом из здесь .
- запустите приложение
- попробуйте открыть каталог выбора
Справочная информация :
- ОС: macOS 10.15.2 Catalina
- IDE: intelliJ IDEA Ultimate 2019.3
Исключение
2020-01-30 17:18:31.288 java[49749:1319417] *** Terminating app due to uncaught exception 'NSObjectNotAvailableException', reason: 'GlassOpenPanel is not a supported subclass for sandboxing'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff364ea8ab __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6c75b805 objc_exception_throw + 48
2 CoreFoundation 0x00007fff364ea701 +[NSException raise:format:] + 189
3 AppKit 0x00007fff33d43aa9 +[NSSavePanel(Instantiation) _crunchyRawUnbonedPanel] + 368
4 libglass.dylib 0x00000001370a2ba6 Java_com_sun_glass_ui_mac_MacCommonDialogs__1showFolderChooser + 358
5 ??? 0x0000000117695950 0x0 + 4687747408
6 ??? 0x000000011768fa00 0x0 + 4687723008
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Решение
По предложению mipa увеличение номера версии OpenJFX решило проблему.
На данный момент, похоже, работает для OpenJFX версии 14-еа + 7 и 15-еа + 1 с MavenCentral