IDE = Eclipse 2019-12 IDE
JavaFX = version 13
OS = macOS Catalina 10.15.3
jnativehook = version 2.1.0
libuiohook = dependency of jnativehook
См. эту проблему на странице gnub jnativehook для получения дополнительной информации.
Библиотека jnativehook использует JNI для вызова скомпилированного кода C ++, который создает нажатия событий Core Graphics при запуске на ма c. Когда происходят системные события ввода, в Java я могу указать обработчики событий для их обработки.
Большинство событий мыши регистрируются нормально и передаются обработчикам событий Java. Однако большинство ключевых событий полностью игнорируются. Я прошел весь путь к исходному коду c ++ ( libuiohook ), где создается событие события и подтверждаю, что никакие события не регистрируются. Однако когда я запускаю libuiohook через скомпилированную программу драйвера c ++, все события регистрируются.
На данный момент я почти уверен, что проблема потерянных событий связана с изоляция JVM от остальной системы. Кто-нибудь знает, как передавать события Core Graphics / Quartz в приложение Java?