在JavaFX应用程序中,IDE在断点处挂起调试模式
我在IntelliJ IDEA中调试时遇到了一个问题,它在javafx应用程序中侦听器的断点处挂起在调试模式下。我试图增加堆空间,但没有帮助。可能有人也有这样的问题,请建议我怎么做。发生这种情况的原因很简单:应用程序在桌面上有一个锁,例如模式对话框、弹出窗口或打开菜单。然后它在断点处停止。这会通知IDE。现在IDE试图在桌面上做一些事情,但是做不到,因为应用程序仍然在整个桌面上有一个锁->死锁 您可以使用这样的工具记录整个程序,并允许您在时间轴上来回移动 最后一个选项是登录或(在JavaFX应用程序中,IDE在断点处挂起调试模式,java,intellij-idea,javafx,ide,javafx-8,Java,Intellij Idea,Javafx,Ide,Javafx 8,我在IntelliJ IDEA中调试时遇到了一个问题,它在javafx应用程序中侦听器的断点处挂起在调试模式下。我试图增加堆空间,但没有帮助。可能有人也有这样的问题,请建议我怎么做。发生这种情况的原因很简单:应用程序在桌面上有一个锁,例如模式对话框、弹出窗口或打开菜单。然后它在断点处停止。这会通知IDE。现在IDE试图在桌面上做一些事情,但是做不到,因为应用程序仍然在整个桌面上有一个锁->死锁 您可以使用这样的工具记录整个程序,并允许您在时间轴上来回移动 最后一个选项是登录或(System.ou
System.out
)
[编辑]
很难用System.out检查20个参数中哪一个不相等
其实很简单:
System.out.println("check");
if(!a1.equals(b2)) System.out.println(a1+"!="+b1);
然后复制最后一行。这样,您将只在实际感兴趣时(而不是19个相等的参数)获得输出。如果无法区分aX
和aY
(即两者都是true
),请在输出中添加一些模式:
将此设置为VM参数:
-Dsun.awt.disablegrab=true
当调试器暂停时,它会使拖放变得混乱,并在屏幕上留下一个工件,但它可以让您进行调试。每当您阻止JavaFX线程时,就会发生这种情况。如果我必须检查具有20个参数的等于2的对象,并且返回false,但实际上我预期为true,那么很难使用System.out检查20个参数中的哪一个不相等。我的同事中没有一个在监听器中调试时没有这样的问题,但他们也不知道出了什么问题,我们都有相同的硬件、操作系统和环境。我喜欢这里的解释,但不喜欢解决方案。我想让我的调试器在Ubuntu上工作,我需要它工作。我的OSX机器上的相同IDE和相同应用程序没有这些问题。我的选项是什么?@user2223059您可以在接受的答案中使用命令行选项,使用日志记录,或者您可以为Linux创建一个新的、无锁桌面。谢谢,我用这个解决了我的问题。谢谢!当我试图调试一个旧的应用程序时,我的笔记本电脑(运行Ubuntu 16.04)冻结了(唯一的出路是ctrl+alt+f1并运行
sudo killall java
),但这有助于:)你是生命的救世主。这个问题使我发疯。也感谢eclipse!谢谢,它也适用于awt,我的应用程序中没有使用javafx,我在运行配置中添加了这个选项IASVM选项。Ubuntu 18.10。
-Dsun.awt.disablegrab=true