【发布时间】:2020-04-09 20:26:08
【问题描述】:
我们最近升级了我们的应用程序以在 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 附带的完整源代码。 (Adopt OpenJDK) Eclipse下无法编译。
关于我们的应用程序可能会采取什么措施导致此失败的任何建议?或者在哪里可以找到 Debug Java 11 运行时库?
【问题讨论】:
标签: macos drag-and-drop java-11 finder