Недавно мы обновили наше приложение до уровня Java 11 (раньше Java 8). На главном экране наших приложений есть одна панель, на которую можно перетаскивать файлы. Это прекрасно работает на Windows, но не на OSX. (раньше работал в Java 8, сбой после переключения на Java 11).
Файл можно перетащить из другого приложения Java, которое его поддерживает, но НЕ из Finder. Метод TransferHandler.canImport () никогда не вызывается.
Метод DropTarget.dragOver () вызывается, но метод drop () никогда не вызывается. Я не могу отследить методы библиотеки времени выполнения, поскольку в ней нет информации о номере строки.
Я обнаружил, что МОГУТ перетаскивать файлы из Finder в другое приложение Java или в JDialog в нашем основное приложение. Сбой только в том случае, если JTable находится на панели в нашем главном окне приложения. Поэтому наше приложение должно делать что-то странное, чтобы оно не сработало.
Проблема в том, чтобы выяснить, ПОЧЕМУ оно не работает, только на OSX. Это большое приложение, и главное окно довольно сложное. Опубликовать пример автономного источника невозможно - тем более что простой случай работает.
Что я мог бы ДЕЙСТВИТЕЛЬНО использовать, так это библиотеку времени выполнения Java 11, в которой есть информация о номере строки, так что я могу вступить в нее. Да, у меня есть полный источник, поставляемый с Java 11 JDK. (Примите OpenJDK) Мне не удалось заставить его скомпилироваться в Eclipse.
Есть какие-нибудь предложения о том, что может делать наше приложение, чтобы это не получилось? Или где я могу найти библиотеку времени выполнения Debug Java 11?