Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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
调试在NetBeans中正确运行的运行时Java崩溃的策略_Java_Swing_Runtime Error - Fatal编程技术网

调试在NetBeans中正确运行的运行时Java崩溃的策略

调试在NetBeans中正确运行的运行时Java崩溃的策略,java,swing,runtime-error,Java,Swing,Runtime Error,先说声对不起。这是一个非常模糊的问题,因为我不知道到底发生了什么。我有一个用NetBeans编写的JavaSwingGUI桌面应用程序。在NetBeans内部,该应用程序运行良好,并通过了我对其进行的所有测试。在过去的几个月里,我一直在开发这个应用程序,并在开发的各个阶段部署它 昨天,我完成了一些新功能的添加和测试。我构建了应用程序,并将其放在另一台计算机上。然后我直接从jar文件运行程序(在NetBeans之外)。在新区域(JDialog框)中,程序崩溃。因为我不在IDE中,所以我没有任何反馈

先说声对不起。这是一个非常模糊的问题,因为我不知道到底发生了什么。我有一个用NetBeans编写的JavaSwingGUI桌面应用程序。在NetBeans内部,该应用程序运行良好,并通过了我对其进行的所有测试。在过去的几个月里,我一直在开发这个应用程序,并在开发的各个阶段部署它

昨天,我完成了一些新功能的添加和测试。我构建了应用程序,并将其放在另一台计算机上。然后我直接从jar文件运行程序(在NetBeans之外)。在新区域(JDialog框)中,程序崩溃。因为我不在IDE中,所以我没有任何反馈来查看哪里出了问题

我能想到的唯一一件事(这很蹩脚)是我添加了一些切换字符串的switch语句,我知道这是1.7的新版本。我以前是在1.6中开发的。否则,我想不出有什么理由认为程序应该在IDE内部完美地工作,而应该在IDE外部崩溃

有人能给我提供一些建议吗?我完全不知所措


非常感谢。

您的下一个调试步骤是减小程序的大小,直到它不会崩溃,然后看看您所做的更改是否有效。这要么让答案显而易见,要么给你一个好问题,让你在上面发帖

您认为这可能与switch语句有关,因此建议您尝试:

  • 移除它们
  • 在JDK 6上删除和编译并查看它是否有效

这些都是减少程序大小的合理方法,以查看是否可以使其运行。

我将从收集崩溃转储数据开始。 如果在windows上运行UI,则可以使用


如果在Linux中运行UI,默认情况下,堆转储将在VM工作目录中名为java_pidpid.hprof的文件中创建。除非您自己通过将此
-XX:HeapDumpPath=option
添加到UI java选项中来指定路径。

听起来您需要添加一些日志记录。从命令行运行Jar,以便显示任何异常(假定它们在代码中未被捕获和忽略)。谢谢。我希望有一些工具可以帮助完成这项工作,但看起来我必须用老式的方式来完成(这意味着我必须投入一些工作)。再次感谢!另一个答案是一个很好的建议。但是通常IDE是一个工具,所以是的,这个比较棘手。根据注释,如果发生异常,您真的应该捕获它并持续记录它。如果它在NetBeans中运行良好,在生产中运行良好,然后几个小时后在生产中中断,会发生什么?这是不可能调试没有日志。很高兴知道。我在Windows中运行,但也许我会在我的Linux虚拟机上下载JRE,看看会显示什么。谢谢