2

提前抱歉。这是一个非常模糊的问题,因为我不知道发生了什么。我有一个用 NetBeans 编写的 Java Swing GUI 桌面应用程序。在 NetBeans 中,该应用程序运行良好,并且通过了我对其进行的所有测试。在过去的几个月里,我一直在开发这个应用程序,并在其开发的各个阶段部署它。

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

我能想到的唯一一件事(这是蹩脚的)是我添加了一些切换字符串的 switch 语句,这是我对 1.7 的新手知道的。我之前是在 1.6 中开发的。否则,我想不出任何理由该程序应该在 IDE 内完美运行,但在它之外崩溃。

任何人都可以就我应该如何处理这个问题提供任何建议吗?我完全不知所措。

非常感谢。

4

2 回答 2

1

我将从收集故障转储数据开始。如果你在 Windows 上运行 UI,你可以使用DrWatson

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

于 2013-02-24T00:50:40.247 回答
1

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

您认为它可能与 switch 语句有关的想法告诉您尝试:

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

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

于 2013-02-24T00:40:11.953 回答