3

我正在使用 LWJGL 用 Ja​​va 开发游戏。除了主游戏之外,我还在开发一些基于 Swing 的应用程序(一个启动器、一个配置编辑器和一个地图编辑器)。

当我运行启动器时,有时(大约 10% 的时间)会发生致命的 JVM 崩溃。这很奇怪——我可以在几秒钟后运行程序,一切正常。我的编译错误或警告为零,当程序运行时,它是完全正常的。

我在运行 LWJGL 游戏时没有收到错误,只有在我先运行启动器时才会出现错误。我用来初始化启动器的过程是:

  1. 告诉 swing 使用 Substance Look and Feel 来装饰窗户。
  2. 在用户计算机上设置一个目录来存储文件(保存游戏、配置等)。
  3. 检查是否需要将 LWJGL 所需的库解压到前面提到的目录;如果是这样,请提取它们。然后,设置 JVM 的 LWJGL 路径属性(这允许 LWJGL 方法起作用)。(这本身已经过广泛的测试;我不知道它是否会以某种方式干扰物质 LaF。我不希望它会这样。)
  4. 初始化启动器窗口。它有一个中心图像和一系列 JButton。
  5. 开始使用 JLayer 循环播放背景音轨以营造氛围。这个错误会在我实现这个功能之前发生,添加它并没有改变任何东西。

我得到的错误如下:

#
# Java 运行时环境检测到一个致命错误:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000007fefd800c7b, pid=6128, tid=4364
#
# JRE 版本:6.0_27-b07
# Java VM:Java HotSpot(TM) 64 位服务器 VM(20.2-b06 混合模式 windows-amd64 压缩 oops)
# 有问题的框架:
#C [ole32.dll+0x10c7b]
#
# 包含更多信息的错误报告文件保存为:
# J:\Development\workspace\Crypt Utils\hs_err_pid6128.log
#
# 如果您想提交错误报告,请访问:
# http://java.sun.com/webapps/bugreport/crash.jsp
# 崩溃发生在 Java 虚拟机之外的本地代码中。
# 查看有问题的框架以了解报告错误的位置。
#

然后,错误日志文件:

#
# Java 运行时环境检测到一个致命错误:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000007fefd800c7b, pid=6128, tid=4364
#
# JRE 版本:6.0_27-b07
# Java VM:Java HotSpot(TM) 64 位服务器 VM(20.2-b06 混合模式 windows-amd64 压缩 oops)
# 有问题的框架:
#C [ole32.dll+0x10c7b]
#
# 如果您想提交错误报告,请访问:
# http://java.sun.com/webapps/bugreport/crash.jsp
# 崩溃发生在 Java 虚拟机之外的本地代码中。
# 查看有问题的框架以了解报告错误的位置。
#

-  -  -  -  -  -  - - 线  -  -  -  -  -  -  - -

当前线程 (0x000000000713d000): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=4364, stack(0x0000000007e30000,0x0000000007f30000)]

siginfo:ExceptionCode=0xc0000005,写入地址0x0000000000000038

寄存器:
RAX=0x0000000000000000,RBX=0x000000000b933c70,RCX=0x000000000000110c,RDX=0x000007fefd996620
RSP=0x0000000007f2dfa0,RBP=0x000000000026dc90,RSI=0x0000000000000000,RDI=0x000000000b933c70
R8 = 0x00000000000003d4,R9 = 0x000007fefd977f18,R10=0x0000000000000000,R11=0x0000000007f2dec0
R12=0x0000000000000000, R13=0x000000000b90a3c0, R14=0x0000000000000000, R15=0x0000000000000000
RIP=0x000007fefd800c7b,EFLAGS=0x0000000000010246

栈顶:(sp=0x0000000007f2dfa0)
0x0000000007f2dfa0: 000000000b933c70 0000000000000000
0x0000000007f2dfb0: 0000000000000000 000007fefd81311b
0x0000000007f2dfc0: 0000000000000000 0000000007f2e050
0x0000000007f2dfd0: 000017f000001000 d0b221343c39b318
0x0000000007f2dfe0: 000081de6b223eb8 000007fefd813032
0x0000000007f2dff0: 0000000000000001 00000000070e9c18
0x0000000007f2e000: 0000000000000000 000000000026dc90
0x0000000007f2e010: 000000000713d1d0 000007fefd801225
0x0000000007f2e020: 0000000007f2e080 000000000026dc90
0x0000000007f2e030: 0000000000000000 000000000000008c
0x0000000007f2e040: 000000000c797be0 000007fefd963135
0x0000000007f2e050: 000000000026dc90 000000000713ca28
0x0000000007f2e060: 0000000006697d00 000007fefd0f8c12
0x0000000007f2e070: 000000000c797be0 000007fefd91de9d
0x0000000007f2e080: 000000000026dc90 00000000070e9c18
0x0000000007f2e090: 0000000000000018 0000000000000514

说明:(pc=0x000007fefd800c7b)
0x000007fefd800c5b: 60 1c 00 41 b8 d4 03 00 00 e8 47 82 01 00 85 f6
0x000007fefd800c6b: 78 2b f3 0f 6f 44 24 30 48 8b 45 18 4c 89 6d 20
0x000007fefd800c7b: f3 0f 7f 40 30 f6 45 0c 01 75 12 48 8b cd e8 是
0x000007fefd800c8b: fa ff ff 8b f0 85 c0 78 04 83 4d 0c 01 48 8b cd


注册到内存映射:

RAX=0x0000000000000000 是未知值
RBX=0x000000000b933c70 是未知值
RCX=0x000000000000110c 是一个未知值
RDX=0x000007fefd996620 是未知值
RSP=0x0000000007f2dfa0 指向线程堆栈:0x000000000713d000
RBP=0x000000000026dc90 是未知值
RSI=0x0000000000000000 是一个未知值
RDI=0x000000000b933c70 是未知值
R8 =0x00000000000003d4 是一个未知值
R9 =0x000007fefd977f18 是未知值
R10=0x0000000000000000 是一个未知值
R11=0x0000000007f2dec0 指向线程堆栈:0x000000000713d000
R12=0x0000000000000000 是一个未知值
R13=0x000000000b90a3c0 是未知值
R14=0x0000000000000000 是一个未知值
R15=0x0000000000000000 是一个未知值


堆栈:[0x0000000007e30000,0x0000000007f30000],sp=0x0000000007f2dfa0,可用空间=1015k
本机帧:(J=编译的 Java 代码,j=解释的,Vv=VM 代码,C=本机代码)
C [ole32.dll+0x10c7b] CLSIDFromString+0x5fb

Java 框架:(J=编译的 Java 代码,j=解释的,Vv=VM 代码)
    sun.awt.windows.WComponentPeer.addNativeDropTarget()J+0
    sun.awt.windows.WComponentPeer.addDropTarget(Ljava/awt/dnd/DropTarget;)V+9
    java.awt.dnd.DropTarget.addNotify(Ljava/awt/peer/ComponentPeer;)V+60
    java.awt.Component.addNotify()V+297
    java.awt.Container.addNotify()V+8
    javax.swing.JComponent.addNotify()V+1
    java.awt.Container.addNotify()V+61
    javax.swing.JComponent.addNotify()V+1
    java.awt.Container.addNotify()V+61
    javax.swing.JComponent.addNotify()V+1
    javax.swing.JMenuBar.addNotify()V+1
    java.awt.Container.addNotify()V+61
    javax.swing.JComponent.addNotify()V+1
    org.pushingpixels.substance.internal.utils.SubstanceTitlePane.addNotify()V+1
    java.awt.Container.addNotify()V+61
    javax.swing.JComponent.addNotify()V+1
    java.awt.Container.addNotify()V+61
    javax.swing.JComponent.addNotify()V+1
    javax.swing.JRootPane.addNotify()V+5
    java.awt.Container.addNotify()V+61
    java.awt.Window.addNotify()V+73
    java.awt.Frame.addNotify()V+70
    java.awt.Window.pack()V+28
    gui.launcher.LauncherWindow.()V+156
    main.Crypt.runLauncher()V+28
    main.Crypt$1.run()V+0
    java.awt.event.InvocationEvent.dispatch()V+47
    java.awt.EventQueue.dispatchEventImpl(Ljava/awt/AWTEvent;Ljava/lang/Object;)V+21
    java.awt.EventQueue.access$000(Ljava/awt/EventQueue;Ljava/awt/AWTEvent;Ljava/lang/Object;)V+3
    java.awt.EventQueue$1.run()Ljava/lang/Void;+12
    java.awt.EventQueue$1.run()Ljava/lang/Object;+1
v ~StubRoutines::call_stub
    java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+0
    java.security.AccessControlContext$1.doIntersectionPrivilege(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/security/AccessControlContext;)Ljava/lang/Object;+28
    java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46
    java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+204
    java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
    java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
    java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
    java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
    java.awt.EventDispatchThread.run()V+9
v ~StubRoutines::call_stub

-  -  -  -  -  -  - - 过程  -  -  -  -  -  -  - -

Java 线程:(=> 当前线程)
  0x0000000007309000 JavaThread“物质堆状态”守护进程 [_thread_blocked, id=5732, stack(0x000000000c000000,0x000000000c100000)]
  0x000000000737e000 JavaThread“Headspace Mixer frame proc thread”守护进程 [_thread_blocked, id=5520, stack(0x000000000bd00000,0x000000000be00000)]
  0x00000000072a2800 JavaThread "Java Sound Event Dispatcher" 守护进程 [_thread_blocked, id=2956, stack(0x000000000b700000,0x000000000b800000)]
  0x00000000071dc800 JavaThread "Thread-3" [_thread_in_native, id=4104, stack(0x00000000082b0000,0x00000000083b0000)]
  0x00000000003db800 JavaThread "DestroyJavaVM" [_thread_blocked, id=5600, stack(0x0000000002570000,0x0000000002670000)]
=> 0x000000000713d000 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=4364, stack(0x0000000007e30000,0x0000000007f30000)]
  0x00000000067af800 JavaThread "AWT-Windows" 守护进程 [_thread_in_native, id=5760, stack(0x0000000007830000,0x0000000007930000)]
  0x00000000067ae800 JavaThread "AWT-Shutdown" [_thread_blocked, id=2600, stack(0x0000000007730000,0x0000000007830000)]
  0x00000000066ea800 JavaThread "Java2D Disposer" 守护进程 [_thread_blocked, id=4244, stack(0x00000000074e0000,0x00000000075e0000)]
  0x0000000006684000 JavaThread“低内存检测器”守护进程 [_thread_blocked, id=5196, stack(0x0000000006d10000,0x0000000006e10000)]
  0x0000000006681000 JavaThread "C2 CompilerThread1" 守护进程 [_thread_blocked, id=4192, stack(0x0000000006c10000,0x0000000006d10000)]
  0x000000000666e000 JavaThread "C2 CompilerThread0" 守护进程 [_thread_blocked, id=4260, stack(0x0000000006b10000,0x0000000006c10000)]
  0x000000000666b000 JavaThread“附加侦听器”守护进程 [_thread_blocked, id=5008, stack(0x0000000006a10000,0x0000000006b10000)]
  0x0000000006666000 JavaThread“信号调度程序”守护进程 [_thread_blocked, id=4032, stack(0x0000000006910000,0x0000000006a10000)]
  0x000000000064b800 JavaThread“终结器”守护进程 [_thread_blocked, id=1132, stack(0x0000000006810000,0x0000000006910000)]
  0x0000000000649000 JavaThread“引用处理程序”守护进程 [_thread_blocked, id=5336, stack(0x0000000006510000,0x0000000006610000)]

其他主题:
  0x0000000000641000 VMThread [堆栈:0x0000000006410000,0x0000000006510000] [id=3820]
  0x0000000006697000 WatcherThread [堆栈:0x0000000006e10000,0x0000000006f10000] [id=5156]

VM 状态:不在安全点(正常执行)

VM Mutex/Monitor 当前由一个线程拥有:无

堆
 PSYoungGen 总计 19136K,已使用 15506K [0x00000000eaab0000, 0x00000000ec000000, 0x0000000100000000)
  伊甸园空间 16448K,已使用 94% [0x00000000eaab0000,0x00000000eb9d4b98,0x00000000ebac0000)
  从空间 2688K,使用 0% [0x00000000ebd60000,0x00000000ebd60000,0x00000000ec000000)
  到空间 2688K,使用 0% [0x00000000ebac0000,0x00000000ebac0000,0x00000000ebd60000)
 PSOldGen 总计 43712K,已使用 0K [0x00000000c0000000, 0x00000000c2ab0000, 0x00000000eaab0000)
  对象空间 43712K,使用率为 0% [0x00000000c0000000,0x00000000c0000000,0x00000000c2ab0000)
 PSPermGen 总计 21248K,已使用 15942K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
  对象空间 21248K,已使用 75% [0x00000000bae00000,0x00000000bbd91870,0x00000000bc2c0000)

代码缓存 [0x0000000002670000, 0x00000000028e0000, 0x0000000005670000)
 total_blobs=470 nmethods=39 适配器=385 free_code_cache=49729536 maximum_free_block=6336

动态库:
0x0000000000400000 - 0x000000000042e000 C:\Program Files\Java\jre6\bin\javaw.exe
0x00000000770f0000 - 0x0000000077299000 C:\Windows\SYSTEM32\ntdll.dll
0x0000000076ed0000 - 0x0000000076fef000 C:\Windows\system32\kernel32.dll
0x000007fefd0f0000 - 0x000007fefd15c000 C:\Windows\system32\KERNELBASE.dll
0x0000000074de0000 - 0x0000000074e1f000 C:\Program Files\AVAST Software\Avast\snxhk64.dll
0x000007fefdde0000 - 0x000007fefdebb000 C:\Windows\system32\ADVAPI32.dll
0x000007fefd410000 - 0x000007fefd4af000 C:\Windows\system32\msvcrt.dll
0x000007fefd4b0000 - 0x000007fefd4cf000 C:\Windows\SYSTEM32\sechost.dll
0x000007fefef90000 - 0x000007feff0bd000 C:\Windows\system32\RPCRT4.dll
0x0000000076ff0000 - 0x00000000770ea000 C:\Windows\system32\USER32.dll
0x000007fefdec0000 - 0x000007fefdf27000 C:\Windows\system32\GDI32.dll
0x000007fefee50000 - 0x000007fefee5e000 C:\Windows\system32\LPK.dll
0x000007feff0c0000 - 0x000007feff189000 C:\Windows\system32\USP10.dll
0x000007fefe090000 - 0x000007fefe0be000 C:\Windows\system32\IMM32.DLL
0x000007fefd4d0000 - 0x000007fefd5d9000 C:\Windows\system32\MSCTF.dll
0x000000006d7f0000 - 0x000000006dfa8000 C:\Program Files\Java\jre6\bin\server\jvm.dll
0x000007fefa980000 - 0x000007fefa9bb000 C:\Windows\system32\WINMM.dll
0x000000006d760000 - 0x000000006d76e000 C:\Program Files\Java\jre6\bin\verify.dll
0x000000006d3b0000 - 0x000000006d3d7000 C:\Program Files\Java\jre6\bin\java.dll
0x000000006d7b0000 - 0x000000006d7c2000 C:\Program Files\Java\jre6\bin\zip.dll
0x000000006d000000 - 0x000000006d1c3000 C:\Program Files\Java\jre6\bin\awt.dll
0x000007fefa620000 - 0x000007fefa691000 C:\Windows\system32\WINSPOOL.DRV
0x000007fefd7f0000 - 0x000007fefd9f3000 C:\Windows\system32\ole32.dll
0x000007fefe0c0000 - 0x000007fefee48000 C:\Windows\system32\SHELL32.dll
0x000007fefef10000 - 0x000007fefef81000 C:\Windows\system32\SHLWAPI.dll
0x000007fefbaf0000 - 0x000007fefbce4000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac\COMCTL32.dll
0x000007fefb3b0000 - 0x000007fefb3c8000 C:\Windows\system32\DWMAPI.DLL
0x000007fefb780000 - 0x000007fefb7d6000 C:\Windows\system32\uxtheme.dll
0x000007fef93b0000 - 0x000007fef942f000 C:\Program Files\Common Files\microsoft shared\ink\tiptsf.dll
0x000007fefd5e0000 - 0x000007fefd6b7000 C:\Windows\system32\OLEAUT32.dll
0x000007fefc180000 - 0x000007fefc18c000 C:\Windows\system32\version.dll
0x000007fefcf70000 - 0x000007fefcf7f000 C:\Windows\system32\CRYPTBASE.dll
0x000000006d2a0000 - 0x000000006d306000 C:\Program Files\Java\jre6\bin\fontmanager.dll
0x000000006d600000 - 0x000000006d617000 C:\Program Files\Java\jre6\bin\net.dll
0x000007fefee60000 - 0x000007fefeead000 C:\Windows\system32\WS2_32.dll
0x000007feff210000 - 0x000007feff218000 C:\Windows\system32\NSI.dll
0x000007fefc870000 - 0x000007fefc8c5000 C:\Windows\system32\mswsock.dll
0x000007fefc860000 - 0x000007fefc867000 C:\Windows\System32\wship6.dll
0x000000006d620000 - 0x000000006d62b000 C:\Program Files\Java\jre6\bin\nio.dll
0x0000000180000000 - 0x0000000180050000 C:\Users\Chris\AppData\Roaming\jRabbit Data\LWJGL Natives\lwjgl64.dll
0x000007fef1550000 - 0x000007fef166d000 C:\Windows\system32\OPENGL32.dll
0x000007fef47c0000 - 0x000007fef47ed000 C:\Windows\system32\GLU32.dll
0x000007fef1210000 - 0x000007fef1301000 C:\Windows\system32\DDRAW.dll
0x000007fef8090000 - 0x000007fef8098000 C:\Windows\system32\DCIMAN32.dll
0x000007feff220000 - 0x000007feff3f7000 C:\Windows\system32\SETUPAPI.dll
0x000007fefd160000 - 0x000007fefd196000 C:\Windows\system32\CFGMGR32.dll
0x000007fefd3b0000 - 0x000007fefd3ca000 C:\Windows\system32\DEVOBJ.dll
0x000007fefa2a0000 - 0x000007fefa49f000 C:\Windows\system32\d3d9.dll
0x000007fefa290000 - 0x000007fefa297000 C:\Windows\system32\d3d8thk.dll
0x000007feed900000 - 0x000007feee777000 C:\Windows\system32\nvd3dumx.dll
0x000007fefb860000 - 0x000007fefb88c000 C:\Windows\system32\powrprof.dll
0x000000006d510000 - 0x000000006d53e000 C:\Program Files\Java\jre6\bin\jsound.dll
0x000007fefb730000 - 0x000007fefb77b000 C:\Windows\system32\MMDevAPI.DLL
0x000007fefb940000 - 0x000007fefba6c000 C:\Windows\system32\PROPSYS.dll
0x000007fefa5e0000 - 0x000007fefa61b000 C:\Windows\system32\wdmaud.drv
0x0000000074a00000 - 0x0000000074a06000 C:\Windows\system32\ksuser.dll
0x000007fefbae0000 - 0x000007fefbae9000 C:\Windows\system32\AVRT.dll
0x000007fefa590000 - 0x000007fefa5df000 C:\Windows\system32\AUDIOSES.DLL
0x000007fefa4e0000 - 0x000007fefa4ea000 C:\Windows\system32\msacm32.drv
0x000007fefa4c0000 - 0x000007fefa4d8000 C:\Windows\system32\MSACM32.dll
0x000007fefa4a0000 - 0x000007fefa4a9000 C:\Windows\system32\midimap.dll
0x000000006d210000 - 0x000000006d238000 C:\Program Files\Java\jre6\bin\dcpr.dll
0x000007fefdf30000 - 0x000007fefdfc9000 C:\Windows\system32\CLBCatQ.DLL
0x000007fefcb00000 - 0x000007fefcb17000 C:\Windows\system32\CRYPTSP.dll
0x000007fefc5d0000 - 0x000007fefc617000 C:\Windows\system32\rsaenh.dll
0x000007fefc390000 - 0x000007fefc3ae000 C:\Windows\system32\USERENV.dll
0x000007fefcfa0000 - 0x000007fefcfaf000 C:\Windows\system32\profapi.dll
0x000007fefad70000 - 0x000007fefad85000 C:\Windows\system32\NLAapi.dll
0x000007fefb220000 - 0x000007fefb235000 C:\Windows\system32\napinsp.dll
0x000007fefb200000 - 0x000007fefb219000 C:\Windows\system32\pnrpnsp.dll
0x000007fefc6f0000 - 0x000007fefc74b000 C:\Windows\system32\DNSAPI.dll
0x000007fefbac0000 - 0x000007fefbacb000 C:\Windows\System32\winrnr.dll
0x0000000074700000 - 0x000000007472e000 C:\Program Files\Common Files\Microsoft Shared\Windows Live\WLIDNSP.DLL
0x00000000772b0000 - 0x00000000772b7000 C:\Windows\system32\PSAPI.DLL
0x00000000746d0000 - 0x00000000746f6000 C:\Program Files\Bonjour\mdnsNSP.dll
0x000007fef9ec0000 - 0x000007fef9ee7000 C:\Windows\system32\Iphlpapi.DLL
0x000007fef9eb0000 - 0x000007fef9ebb000 C:\Windows\system32\WINNSI.DLL
0x000007fefc250000 - 0x000007fefc257000 C:\Windows\System32\wshtcpip.dll
0x000007fefb7e0000 - 0x000007fefb7e8000 C:\Windows\system32\rasadhlp.dll
0x000007fef9cf0000 - 0x000007fef9d43000 C:\Windows\System32\fwpuclnt.dll
0x000007fefcf80000 - 0x000007fefcf94000 C:\Windows\system32\RpcRtRemote.dll

虚拟机参数:
jvm_args:-Dfile.encoding=Cp1252
java_command: main.Crypt
启动器类型:SUN_STANDARD

环境变量:
CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
PATH=C:/Program Files/Java/jre6/bin/server;C:/Program Files/Java/jre6/bin;C:/Program Files/Java/jre6/lib/amd64;C:\Program Files\Common Files \Microsoft Shared\Windows Live;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32 \WindowsPowerShell\v1.0\;C:\Program Files\SlikSvn\bin\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100 \Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Autodesk\Backburner\ ;J:\开发\Eclipse;
用户名=克里斯
操作系统=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 15 Stepping 11,正版Intel

-  -  -  -  -  -  - - 系统  -  -  -  -  -  -  - -

操作系统:Windows 7,64 位 Build 7601 Service Pack 1

CPU:共 4 个(每个 cpu 4 个内核,每个内核 1 个线程)系列 6 型号 15 步进 11、cmov、cx8、fxsr、mmx、sse、sse2、sse3、ssse3

内存:4k 页,物理 4193464k(2246544k 空闲),交换 8385080k(6086692k 空闲)

vm_info:用于 windows-amd64 JRE (1.6.0_27-b07) 的 Java HotSpot(TM) 64 位服务器 VM (20.2-b06),由“java_re”和 MS VC++ 8.0 (VS2005) 于 2011 年 7 月 19 日 01:08:22 构建)

时间:2011年10月3日星期一09:29:15
经过时间:1秒

从 Stack Overflow 上环顾四周,似乎这偶尔与内存设置有关。这里是这样吗?我已经将 Eclipse 设置为使用大量内存运行;此外,我只创建了一个带有一些组件的小型 JFrame,并初始化了 LWJGL 库。这不会占用太多内存。

4

4 回答 4

6

我经常在我的 Windows Vista 64 机器上遇到 java 6 和 Swing 的问题(但只有当我从 eclipse 启动我的应用程序时)。

为我修复它的方法是禁用 Direct3D:

java -Dsun.java2d.d3d=false ...

另请参阅http://download.oracle.com/javase/6/docs/technotes/guides/2d/flags.html#d3d了解更多信息。

于 2011-10-03T15:56:29.743 回答
1

好吧,错误来自dll试图写入不应该写入的内存。如果只是偶尔发生,可能是因为没有在事件调度线程上构建组件。检查不会有什么坏处。

于 2011-10-03T14:54:19.380 回答
1

oracle 的这个错误报告可能与此相关:http ://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=e5f1f1011daf96ffffffffdd154dd2e731150?bug_id=6967456

这可能与 Swing 的拖放功能有关 - 查看在表单组件上禁用拖放功能是否会抑制错误。

于 2011-10-03T14:59:01.697 回答
1

@CodeBunny,那将是评论:

1) 有没有 Trindent.jar

2) 如何将 Substance Look and Feel 应用到 JFrame,

SwingUtilities.invokeLater(new Runnable() {

    @Override
    public void run() {
        try {
            UIManager.setLookAndFeel(new SubstanceOfficeSilver2007LookAndFeel());
            SwingUtilities.updateComponentTreeUI(frame);
        } catch (UnsupportedLookAndFeelException e) {
            throw new RuntimeException(e);
        }
    }
});

在大多数情况下(如果有一些后台任务)需要使用invokeAndWait

编辑

依靠

1)如果您正在加载空容器,则添加数据(invokeLater)

2)或加载所有内容并等待(invokeAndWait),

3) 是您在最后一行中的 Container 构造器包含 setVisible(true),最后是可能的行,

4)也许你在EDT之外,你必须加载这么重的东西,不是有RepaintManager错误吗???

5) 禁用 Substance,如果您收到此错误,则来自编码错误或某些代码返回错误,否则是否与 RepaintManager(重载本机 OS 延迟)或 Concurency 相关,简单您的代码超出 EDT,

6) Substance 非常敏感,对于 EDT 问题中的已完成代码非常敏感,从 GUI 相关代码中删除所有 Thread.sleep(int)

于 2011-10-03T15:47:23.180 回答