由于致命错误{EXCEPTION_UNCAUGHT_CXX_EXCEPTION}我的java应用程序突然退出

时间:2012-08-04 08:11:26

标签: java mysql

我开发了一个GUI java应用程序。它有用于用户身份验证的登录页面。 它使用mysql作为后端。我已经使用Jar2Exe 1.0(Regexlab.com)将我的应用程序包装到32位Windows .exe文件中。

问题不在于我运行应用程序时:

  • 数据库连接正常;
  • 登录窗口没问题。

当我点击提交按钮登录应用程序时,大部分时间,它都有效,应用程序继续工作。但有时,应用程序退出时没有任何消息并生成错误日志,其内容如下:

----------------------------------------------------------
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_UNCAUGHT_CXX_EXCEPTION (0xe06d7363) at pc=0x766fb9bc, pid=8808, tid=7540
#
# JRE version: 6.0_29-b11
# Java VM: Java HotSpot(TM) Client VM (20.4-b02 mixed mode, sharing windows-x86 )
# Problematic frame:
# C  [KERNELBASE.dll+0xb9bc]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x0a186000):  JavaThread "SwingWorker-pool-1-thread-10" daemon [_thread_in_native, id=7540, stack(0x0e390000,0x0e490000)]

siginfo: ExceptionCode=0xe06d7363, ExceptionInformation=0x19930520 0x0e48f41c 0x0042e2c0 

Registers:
EAX=0x0e48f344, EBX=0x00000000, ECX=0x00000003, EDX=0x00000000
ESP=0x0e48f344, EBP=0x0e48f394, ESI=0x00429508, EDI=0x0e48f3d4
EIP=0x766fb9bc, EFLAGS=0x00000216

Top of Stack: (sp=0x0e48f344)
0x0e48f344:   e06d7363 00000001 00000000 766fb9bc
0x0e48f354:   00000003 19930520 0e48f41c 0042e2c0
0x0e48f364:   00000008 00000000 0e48f420 00000000
0x0e48f374:   00000000 00000008 0e48f408 00000000
0x0e48f384:   00401dc2 00000000 02448e48 00000000
0x0e48f394:   0e48f3d4 0040df08 e06d7363 00000001
0x0e48f3a4:   00000003 0e48f3c8 02448e60 02448e30
0x0e48f3b4:   e06d7363 00000001 00000000 00000000 

Instructions: (pc=0x766fb9bc)
0x766fb99c:   02 50 ff 75 14 8d 45 c4 50 e8 58 ad 02 00 83 c4
0x766fb9ac:   0c eb 03 89 45 c0 8d 45 b0 50 ff 15 5c 11 6f 76
0x766fb9bc:   c9 c2 10 00 cc cc cc cc cc 8b ff 55 8b ec 56 8b
0x766fb9cc:   75 08 83 fe f4 72 18 83 fe f6 77 13 8d 45 08 50 


Register to memory mapping:

EAX=0x0e48f344 is pointing into the stack for thread: 0x0a186000
EBX=0x00000000 is an unknown value
ECX=0x00000003 is an unknown value
EDX=0x00000000 is an unknown value
ESP=0x0e48f344 is pointing into the stack for thread: 0x0a186000
EBP=0x0e48f394 is pointing into the stack for thread: 0x0a186000
ESI=0x00429508 is an unknown value
EDI=0x0e48f3d4 is pointing into the stack for thread: 0x0a186000


Stack: [0x0e390000,0x0e490000],  sp=0x0e48f344,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [KERNELBASE.dll+0xb9bc]  RaiseException+0x58
C  [panda.exe+0xdf08]  Java_com_regexlab_j2e_Jar2ExeClassLoader_findResources+0xb528

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.regexlab.j2e.Jar2ExeClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;+0
J  java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
J  java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;
v  ~StubRoutines::call_stub
j  com.panda.HomePageUI$124.doInBackground()Ljava/lang/Object;+26
j  javax.swing.SwingWorker$1.call()Ljava/lang/Object;+14
j  java.util.concurrent.FutureTask$Sync.innerRun()V+30
j  java.util.concurrent.FutureTask.run()V+4
j  javax.swing.SwingWorker.run()V+4
j  java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Ljava/lang/Runnable;)V+59
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+28
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0a62b000 JavaThread "Thread-12" daemon [_thread_blocked, id=8328, stack(0x0f460000,0x0f560000)]
  0x0a62ac00 JavaThread "pool-2-thread-1" [_thread_in_Java, id=6056, stack(0x0bdc0000,0x0bec0000)]
  0x0a62a400 JavaThread "Thread-11" daemon [_thread_blocked, id=4872, stack(0x0bc80000,0x0bd80000)]
  0x0a62a000 JavaThread "Thread-10" daemon [_thread_blocked, id=2980, stack(0x0bb40000,0x0bc40000)]
=>0x0a186000 JavaThread "SwingWorker-pool-1-thread-10" daemon [_thread_in_native, id=7540, stack(0x0e390000,0x0e490000)]
  0x0a185800 JavaThread "SwingWorker-pool-1-thread-9" daemon [_thread_blocked, id=3852, stack(0x0e250000,0x0e350000)]
  0x0a185400 JavaThread "SwingWorker-pool-1-thread-8" daemon [_thread_blocked, id=5452, stack(0x0e110000,0x0e210000)]
  0x0a184c00 JavaThread "SwingWorker-pool-1-thread-7" daemon [_thread_blocked, id=8800, stack(0x0dfd0000,0x0e0d0000)]
  0x0a184800 JavaThread "SwingWorker-pool-1-thread-6" daemon [_thread_in_native, id=8740, stack(0x0de90000,0x0df90000)]
  0x0a184000 JavaThread "SwingWorker-pool-1-thread-5" daemon [_thread_blocked, id=4856, stack(0x0dd50000,0x0de50000)]
  0x0a183c00 JavaThread "SwingWorker-pool-1-thread-4" daemon [_thread_blocked, id=644, stack(0x0dc10000,0x0dd10000)]
  0x0a183400 JavaThread "SwingWorker-pool-1-thread-3" daemon [_thread_blocked, id=516, stack(0x0dad0000,0x0dbd0000)]
  0x0a182c00 JavaThread "Image Fetcher 1" daemon [_thread_blocked, id=2772, stack(0x0d990000,0x0da90000)]
  0x0a182800 JavaThread "KeyTipManager processing thread" daemon [_thread_blocked, id=7440, stack(0x0d750000,0x0d850000)]
  0x0a182000 JavaThread "SwingWorker-pool-1-thread-2" daemon [_thread_blocked, id=5576, stack(0x0d500000,0x0d600000)]
  0x0a181c00 JavaThread "SyntheticaAnimation 70" daemon [_thread_blocked, id=5660, stack(0x0d400000,0x0d500000)]
  0x0a181400 JavaThread "SyntheticaAnimation 60" daemon [_thread_blocked, id=9112, stack(0x0d200000,0x0d300000)]
  0x0a181000 JavaThread "Image Fetcher 0" daemon [_thread_in_native, id=8860, stack(0x067e0000,0x068e0000)]
  0x0a180800 JavaThread "StreamConnector 1: driver_launched_mysqld_1 std err" daemon [_thread_in_native, id=6052, stack(0x09da0000,0x09ea0000)]
  0x0a180000 JavaThread "StreamConnector 0: driver_launched_mysqld_1 std out" daemon [_thread_in_native, id=3264, stack(0x09c60000,0x09d60000)]
  0x0a17fc00 JavaThread "driver_launched_mysqld_1" daemon [_thread_in_native, id=2516, stack(0x09b20000,0x09c20000)]
  0x0a11b000 JavaThread "SyntheticaAnimation 50" daemon [_thread_blocked, id=4088, stack(0x0b570000,0x0b670000)]
  0x0023e000 JavaThread "DestroyJavaVM" [_thread_blocked, id=9132, stack(0x00090000,0x00190000)]
  0x0a11b800 JavaThread "SwingWorker-pool-1-thread-1" daemon [_thread_blocked, id=7784, stack(0x0b430000,0x0b530000)]
  0x0a11e800 JavaThread "D3D Screen Updater" daemon [_thread_blocked, id=3808, stack(0x0aef0000,0x0aff0000)]
  0x0a110800 JavaThread "TimerQueue" daemon [_thread_blocked, id=3828, stack(0x0abf0000,0x0acf0000)]
  0x0a0ac800 JavaThread "SyntheticaCleanerThread" daemon [_thread_blocked, id=8832, stack(0x0aaf0000,0x0abf0000)]
  0x0a05e000 JavaThread "Thread-2" daemon [_thread_blocked, id=8556, stack(0x0a7f0000,0x0a8f0000)]
  0x05b5bc00 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=8968, stack(0x09ef0000,0x09ff0000)]
  0x059c7800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=9056, stack(0x066a0000,0x067a0000)]
  0x059c7000 JavaThread "AWT-Shutdown" [_thread_blocked, id=8364, stack(0x06560000,0x06660000)]
  0x059c4c00 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=6100, stack(0x06460000,0x06560000)]
  0x02b11800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=7964, stack(0x053a0000,0x054a0000)]
  0x02afc000 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=3420, stack(0x05260000,0x05360000)]
  0x02af9000 JavaThread "Attach Listener" daemon [_thread_blocked, id=8732, stack(0x05120000,0x05220000)]
  0x02af5800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=8380, stack(0x04fe0000,0x050e0000)]
  0x02aef400 JavaThread "Finalizer" daemon [_thread_blocked, id=8804, stack(0x04ea0000,0x04fa0000)]
  0x02aedc00 JavaThread "Reference Handler" daemon [_thread_blocked, id=8420, stack(0x04d60000,0x04e60000)]

Other Threads:
  0x02ab1c00 VMThread [stack: 0x04c20000,0x04d20000] [id=7960]
  0x02b25c00 WatcherThread [stack: 0x054e0000,0x055e0000] [id=9100]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 78656K, used 59862K [0x24580000, 0x29ad0000, 0x29ad0000)
  eden space 69952K,  73% used [0x24580000, 0x27775a10, 0x289d0000)
  from space 8704K, 100% used [0x289d0000, 0x29250000, 0x29250000)
  to   space 8704K,   0% used [0x29250000, 0x29250000, 0x29ad0000)
 tenured generation   total 174784K, used 25650K [0x29ad0000, 0x34580000, 0x34580000)
   the space 174784K,  14% used [0x29ad0000, 0x2b3dc920, 0x2b3dca00, 0x34580000)
 compacting perm gen  total 12288K, used 11118K [0x34580000, 0x35180000, 0x38580000)
   the space 12288K,  90% used [0x34580000, 0x3505b908, 0x3505ba00, 0x35180000)
    ro space 10240K,  51% used [0x38580000, 0x38aad0b8, 0x38aad200, 0x38f80000)
    rw space 12288K,  54% used [0x38f80000, 0x39619570, 0x39619600, 0x39b80000)

Code Cache  [0x02b70000, 0x02e78000, 0x04b70000)
....
//----------------------------------------------------------

我用谷歌搜索了它。我发现有些人有同样的EXCEPTION_UNCAUGHT_CXX_EXCEPTION问题。他们中的一些人解决了他们改变线程堆栈大小的问题。我做到了,但我仍然有问题。

如果有人能帮助我,我会很高兴,谢谢。

注意:Panda.exe是应用程序的名称。

3 个答案:

答案 0 :(得分:6)

您的计算机上是否安装了Panda Antivirus?日志说明问题出在JVM之外,在本机代码中,并且引用了一个名为“Panda.exe”的进程。

这只是猜测,但可能是您的防病毒与您的应用程序冲突。您可以在没有防病毒的计算机上测试您的应用程序(例如,与虚拟机运行相同的Windows安装)

答案 1 :(得分:4)

查看错误日志的一部分,然后向后工作:

1. C  [KERNELBASE.dll+0xb9bc]  RaiseException+0x58
2. C  [panda.exe+0xdf08]  Java_com_regexlab_j2e_Jar2ExeClassLoader_findResources+0xb528
3. Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
4. j  com.regexlab.j2e.Jar2ExeClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;+0
5. J  java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
6. J  java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;
7. v  ~StubRoutines::call_stub
8. j  com.panda.HomePageUI$124.doInBackground()Ljava/lang/Object;+26
9. j  javax.swing.SwingWorker$1.call()Ljava/lang/Object;+14
  • 第8行:发生这种情况时,您的代码中明显存在。
  • 第7-4行:你已经进入了Regexlab.com的代码;在他们的类加载器中
  • 第2-1行:Regexlab进行了本地通话。您不在普通的JVM代码库之外,而是在引发异常时由第三方编写的本机代码。问题在于Regexlab代码,而且不在您手中。

除了向Regexlab报告并获得补丁之外,您无法做到这一点。

答案 2 :(得分:0)

授予JVM使用的本机库适当的权限