我正在尝试在Eclipse中调试Maven测试。 当我使用maven选项maven.surefire.debug启动测试时,我收到此错误: ERROR: transport error 202: bind failed: Address already in use FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690] /bin/sh: line 1: 27500 Abort trap 当我尝试在我的shell中启动调试时,它是一样的。 我试图添加maven选项forkMode = never,如果没有maven.surefire.debug选项,我的焊接工件会出现另一个错误: Error loading Weld bootstrap, check that Weld […]
if (true) { String a = “foo”; String b = “bar”; } 如果我在String a = “foo”;设置断点String a = “foo”; eclipse将停止,我可以跨过并查看变量窗口内部的值。 但我不能跨越第二个声明,它只是离开代码块而我从未看到b的值。 这迫使我在String b = “bar”;之后添加一个noop语句String b = “bar”; 只是这样我才能看到b包含的内容。 我也不能在结束时添加断点}我认为这可能是相关的问题。 我知道Visual Studio允许这样做,所以有没有办法在Eclipse中执行此操作?
我正在使用Eclipse 3.4.2调试一些Java代码。 我已禁用所有断点,但调试器仍在特定行停止。 在触发null pointer exception之前,这一点是几行。 奇怪的是,当我运行相同的代码/运行配置但不在调试器中时,不会发生空指针exception。 此外,如果我从方法的开头逐步执行此代码导致null pointer exception ,使用完全相同的输入,没有问题。 它只会在我删除所有断点时发生,但Eclipse决定在那里停止。 为什么会发生这种情况?
我创建了一个Java桌面应用程序(使用Swing),现在我正在尝试通过使用JNLP从网络启动它来使其工作。 当我从终端启动它时,应用程序工作正常,但是一旦我从JNLP启动它,它就不会关闭。 我每次都必须手动杀死进程。 我读到如果我的JFrame使用DISPOSE_ON_CLOSE作为默认关闭操作可能会出现问题,但事实并非如此。 它使用DO_NOTHING_ON_CLOSE (隐式)。 另外,我在释放所有对象后显式调用System.exit(0) : f = new JFrame(“Pacman”); f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Terminate the Game-loop: GameLoop.INSTANCE.stopLoop(); // Close the application: System.exit(0); } }); 我想在关闭应用程序时可能会抛出一个exception,但是我无法找到一种方法来获取正在运行的应用程序的控制台输出(例如Stack-Trace)以JNLP启动。 这是我尝试过的: 使用调试参数启动javaws并连接jconsole (有效,但我找不到任何exception或控制台输出)。 使用调试参数启动javaws并将IntelliJ调试器附加到它(也可以,但不会给我任何输出) 那么,如何使用JNLP启动应用程序并获取输出(写入默认输出和错误流),就像我使用普通桌面应用程序一样?
通过调试器运行时,一些CPU密集型例程会变得非常慢。 为什么是这样? 目前我只是使用IntelliJ来逐步运行在JBoss中运行的代码。 当我启动JBoss时,我使用以下选项: set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=256m -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n %JAVA_OPTS% 有没有办法加快执行速度? 或者加速我不需要介入的某些方法执行? 更新 :似乎我没有跨越/进入CPU密集型例程(即:只运行直到例程后设置的断点),然后执行时间好像不在调试器中。
我正在尝试在Eclipse中调试我的Java应用程序,但是当我遇到断点时,我只是看到以下内容而不是我的源代码: 如果我在调试窗口中更改堆栈帧,那么我可以看到选项卡中的函数名称更改 – 这绝对是我的代码,行号是正确的,我使用的是最新版本,但我仍然无法将Eclipse转换为显示源(尽管它在另一个选项卡中打开!) 我是Eclipse的新手,所以我很难找到自己的方式,但到目前为止我遇到的所有事情对我来说都很好。 可能导致这种情况发生的原因以及如何解决?
如何在Java中设置断点? 它只是基于源文件名和行号吗? 类或方法名称是否也适用? 如果我的调试器中有旧版本的源并设置了断点,则当我单步执行时光标将关闭。 它能走多远? 它可以进入错误的方法(如果该文件中有多个类,甚至是错误的类)? 当JVM中有多个同名的类时会发生什么情况(如果你有多个类加载器,可能会发生这种情况)? 他们都得到了断点吗? 在Web应用程序容器中,我是否可以仅为一个Web应用程序(而不是其他Web应用程序)设置断点? 这有多少是特定于IDE的,以及JVM提供的调试接口决定了多少? 例如:在Eclipse中,我可以根据变量的值设置条件断点。 这只是Eclipse在JVM中的无条件断点上完成的过滤吗?
在我最繁忙的生产安装中,有时我会得到一个似乎陷入无限循环的单个线程。 经过大量的研究和调试后,我还没弄清楚谁是罪魁祸首,但似乎应该是可能的。 以下是血腥的细节: 目前的调试说明: 1) ps -eL 18975向我展示了Linux pid问题子线程,19269 $ps -eL | grep 18975 … PID LWP TTY TIME CMD 18975 18994 ? 00:00:05 java 18975 19268 ? 00:00:00 java 18975 19269 ? 05:16:49 java 18975 19271 ? 00:01:22 java 18975 19273 ? 00:00:00 java … 2) jstack -l 18975表示没有死锁, jstack -m 18975不起作用 3) jstack […]
这与如何在调试期间退出while循环不重复。 请参阅此问题的作者对此答案的评论https://stackoverflow.com/a/8107702/1391924 。 在调试时,我们可以使用F8等快捷键恢复, F7步进返回, F5步进, F6步进。 调试Java代码时是否有任何快捷键可以跳过循环(for,while和do-while)? 在下图所示的图片中 当前调试光标位于第57行。按下它时是否有任何快捷键调试光标应该从最里面的循环中出来(for,while或do-while。这里是while循环)并在下一个可执行语句处暂停(即排除注释。这里没有64)。 当再次按下此键时,它应该到第66行。 编辑: 没有得到任何满意的答案。 在这里提出了一个错误。 请在下一个JDT版本中投票并申请此function。
我遇到Eclipse的问题,我可以运行我的程序,但是当我尝试启动调试器时,我收到此消息 图片有点难以理解,但它没有得到正常的调试窗口,而是说它抛出了一个ClassNotFoundException,并试图为Launcher $ ExtClassLoader显示源。 真正令我感到困惑的是,我可以运行代码就好了,只有当我点击调试按钮时才会遇到问题。 我也试过在JDB的命令行调试,我得到了同样的错误。 到目前为止,我已经尝试重新安装Eclipse并下载(我相信是)适用于Mac OS X的正确Java开发工具。 我不知道我还能尝试什么,所以任何帮助都将不胜感激。 如果我能提供任何其他信息,请告诉我。