Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaFX应用程序中,IDE在断点处挂起调试模式_Java_Intellij Idea_Javafx_Ide_Javafx 8 - Fatal编程技术网

在JavaFX应用程序中,IDE在断点处挂起调试模式

在JavaFX应用程序中,IDE在断点处挂起调试模式,java,intellij-idea,javafx,ide,javafx-8,Java,Intellij Idea,Javafx,Ide,Javafx 8,我在IntelliJ IDEA中调试时遇到了一个问题,它在javafx应用程序中侦听器的断点处挂起在调试模式下。我试图增加堆空间,但没有帮助。可能有人也有这样的问题,请建议我怎么做。发生这种情况的原因很简单:应用程序在桌面上有一个锁,例如模式对话框、弹出窗口或打开菜单。然后它在断点处停止。这会通知IDE。现在IDE试图在桌面上做一些事情,但是做不到,因为应用程序仍然在整个桌面上有一个锁->死锁 您可以使用这样的工具记录整个程序,并允许您在时间轴上来回移动 最后一个选项是登录或(System.ou

我在IntelliJ IDEA中调试时遇到了一个问题,它在javafx应用程序中侦听器的断点处挂起在调试模式下。我试图增加堆空间,但没有帮助。可能有人也有这样的问题,请建议我怎么做。

发生这种情况的原因很简单:应用程序在桌面上有一个锁,例如模式对话框、弹出窗口或打开菜单。然后它在断点处停止。这会通知IDE。现在IDE试图在桌面上做一些事情,但是做不到,因为应用程序仍然在整个桌面上有一个锁->死锁

您可以使用这样的工具记录整个程序,并允许您在时间轴上来回移动

最后一个选项是登录或(
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