【发布时间】:2025-11-28 21:15:01
【问题描述】:
不可重现的崩溃(无错误/异常)。 当我运行一个对话框以仅 10 次选择一个文件夹时发生。代码:
public String getFilePathFromDialog(String dialogTitle) {
JFileChooser fileChooser;
fileChooser = new JFileChooser();
fileChooser.setDialogTitle(dialogTitle);
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.setAcceptAllFileFilterUsed(true);
if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
return fileChooser.getSelectedFile().toString();
} else {
return "";
}
}
它使我的应用程序崩溃。在此之后,我只能通过以下方式关闭它: Ctrl+Alt+Delete -> 任务管理器 -> 杀死它 -> 然后我得到“Java(TM) Platform SE 二进制文件没有响应” 然后我点击关闭按钮
我做错了什么还是一个错误?
我找到了下面提到的 Peter 的故障转储文件。这是其中的一部分:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x62a5ff52, pid=5516, tid=5312
#
# Problematic frame:
# C [nvd3dum.dll+0x2fff52]
#
Current thread (0x04323400): JavaThread "AWT-Windows" daemon [_thread_in_native, id=5312, stack(0x04d60000,0x04db0000)]
siginfo: ExceptionCode=0xc0000005, writing address 0x04ee9004
【问题讨论】:
-
如果它正在崩溃,您应该在应用程序的默认工作目录中获得崩溃转储。有关更多详细信息,请参阅此链接*.com/questions/1880166/…您在使用 Java 6 更新 23 吗?
-
您是否在该计算机上映射了网络驱动器? Java 可能会尝试从这些网络驱动器中读取以在对话框中列出它们。当网络由于某种原因变慢或暂时无法访问时,这可能会使您的程序似乎挂起一段时间。
-
我确实有很多网络驱动器。也许与此有关。但它并没有放慢速度,而是完全崩溃了。它要么立即启动,要么永远崩溃。不管怎么说,还是要谢谢你。好点子。我将桌面设置为 CurrentDirectory (启动对话框的默认目录),我认为它不再这样做了。所以你的评论很有用。
-
彼得,我正在使用:NetBeans 6.8,Java 1.6.0_17。我找到了故障转储文件并将其添加到我的问题中
标签: java crash openfiledialog jfilechooser