Я разрабатываю Java-приложение, используя openjfx
модули. Теперь я хочу использовать DirectoryChooser
, чтобы пользователь мог выбрать несколько файлов в качестве входных данных (код ниже). Каждый раз, когда я запускаю приложение из IDE, оно падает, за исключением приведенного ниже. Под сбоем я подразумеваю полное прекращение работы (не зависание).
Я также попробовал пример кода, например этот, чтобы выяснить, что-то не так с моей реализацией, но каждый найденный образец вызывал у меня одну и ту же проблему.
Я не уверен, является ли это общей проблемой / ошибкой, потому что я видел старые ошибки в системе отслеживания ошибок оракула, но все они были отмечены как исправленные.
Я был бы рад, если бы кто-то мог помочь в этом. Я был бы даже рад обходному пути, который просто избегает DirectoryChooser
, если таковой имеется.
Действия для воспроизведения:
- создайте небольшое приложение с демонстрационным кодом из здесь.
- запустить приложение
- попробуй открыть выбор каталога
Справочная информация:
- ОС: macOS 10.15.2 Каталина
- 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-ea+7 и 15-ea+1 из MavenCentral