我现在有一个读卡器,通过com1端口与计算机连接,读卡器厂商提供给我一个dll文件,主要是控制访问读卡器的函数。   
          现在我要做一个b/s结构的程序来控制读卡器,用Applet实现,然后将Applet程序嵌入到JSP页面中。由于程序运行时必须加载那个DLL文件,因此我的实现原理是:用户在浏览器打开程序时,自动将DLL文件下载到客户电脑上,然后加载DLL文件,控制读卡器工作。读卡器要先读出卡上的数据,然后用户再向卡里写入数据。   
          浏览器运行时,大部分的读写卡操作都是正常的,但是有些时候在点“保存”的时候,也就是进行写卡操作的时候浏览器崩溃,桌面上出现一个TXT文档!此问题只出现在向卡内写数据的时候。
          崩溃的文档名字是“hs_err_pid132”,数字是随机的。崩溃的部分内容是:
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x08b21a91, pid=132, tid=2212
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0-b105 mixed mode, sharing)
# Problematic frame:
# C  [mwrf32.dll+0x1a91]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#---------------  T H R E A D  ---------------Current thread (0x07e66c00):  JavaThread "AWT-EventQueue-2" [_thread_in_native, id=2212]siginfo: ExceptionCode=0xc0000005, reading address 0x08c54000Registers:
EAX=0x08c50100, EBX=0x26ee7220, ECX=0x08c53ff8, EDX=0x33363030
ESP=0x0845f350, EBP=0x0845f3c0, ESI=0x00000f08, EDI=0x07e66c00
EIP=0x08b21a91, EFLAGS=0x00010202Top of Stack: (sp=0x0845f350)
0x0845f350:   07e66ce8 36303004 c5010033 00000008
0x0845f360:   07e66c00 0845f3c0 08b01342 00000f08
0x0845f370:   00000004 08c53ff8 26ee7220 03b1a430
0x0845f380:   07e66ce8 0845f3dc 00000f08 00000004
0x0845f390:   0845f3d0 03b12d95 00000000 03b18409
0x0845f3a0:   0845f3a0 00000000 0845f3dc 26ee91b0
0x0845f3b0:   00000000 26ee7220 00000000 0845f3d0
0x0845f3c0:   0845f404 03b12d95 00000000 03b18409 Instructions: (pc=0x08b21a91)
0x08b21a81:   11 8b 74 24 1c 89 54 24 05 8b 41 04 89 44 24 09
0x08b21a91:   8b 51 08 89 54 24 0d 8b 41 0c 8d 4c 24 04 51 6a 
Stack: [0x08360000,0x08460000),  sp=0x0845f350,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [mwrf32.dll+0x1a91]
j  com.huadi.rlgl.applet.card.CardOperation.storeData(IILjava/lang/String;)Z+47
j  com.huadi.rlgl.applet.bs.Busniess.storeData2Card(Lcom/huadi/rlgl/applet/card/CardOperation;Ljava/util/List;)V+96
j  com.huadi.rlgl.applet.bs.Busniess.saveCard(Lcom/huadi/rlgl/applet/bs/bean/PonderWeightBean;Lcom/huadi/rlgl/applet/card/CardOperation;[I)Ljava/lang/String;+524
j  com.huadi.rlgl.applet.ui.CardApplet.btnSaveActionPerformed(Ljava/awt/event/ActionEvent;)V+26
j  com.huadi.rlgl.applet.ui.CardApplet.access$800(Lcom/huadi/rlgl/applet/ui/CardApplet;Ljava/awt/event/ActionEvent;)V+2
j  com.huadi.rlgl.applet.ui.CardApplet$5.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
j  javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
j  javax.swing.DefaultButtonModel.setPressed(Z)V+117
j  javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
j  java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
j  javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
j  java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81
j  java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18
j  java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+562
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V+320
j  java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139
j  java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46
j  java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+156
j  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j  java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j  java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j  java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j  java.awt.EventDispatchThread.run()V+9
v  ~StubRoutines::call_stubJava frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.huadi.rlgl.applet.card.RF200LTJNI.rf_write(ICLjava/lang/String;)I+0
j  com.huadi.rlgl.applet.card.CardOperation.storeData(IILjava/lang/String;)Z+47
j  com.huadi.rlgl.applet.bs.Busniess.storeData2Card(Lcom/huadi/rlgl/applet/card/CardOperation;Ljava/util/List;)V+96
j  com.huadi.rlgl.applet.bs.Busniess.saveCard(Lcom/huadi/rlgl/applet/bs/bean/PonderWeightBean;Lcom/huadi/rlgl/applet/card/CardOperation;[I)Ljava/lang/String;+524
j  com.huadi.rlgl.applet.ui.CardApplet.btnSaveActionPerformed(Ljava/awt/event/ActionEvent;)V+26
j  com.huadi.rlgl.applet.ui.CardApplet.access$800(Lcom/huadi/rlgl/applet/ui/CardApplet;Ljava/awt/event/ActionEvent;)V+2
j  com.huadi.rlgl.applet.ui.CardApplet$5.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
j  javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
j  javax.swing.DefaultButtonModel.setPressed(Z)V+117
j  javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
j  java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
j  javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
j  java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81
j  java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18
j  java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+562
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V+320
j  java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139
j  java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46
j  java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+156
j  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j  java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j  java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j  java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j  java.awt.EventDispatchThread.run()V+9
v  ~StubRoutines::call_stub---------------  P R O C E S S  ---------------Java Threads: ( => current thread )
  0x07eedc00 JavaThread "Thread-8" [_thread_blocked, id=976]
=>0x07e66c00 JavaThread "AWT-EventQueue-2" [_thread_in_native, id=2212]
  0x063ffc00 JavaThread "TimerQueue" daemon [_thread_blocked, id=2176]
  0x06327000 JavaThread "thread applet-com.huadi.rlgl.applet.ui.CardApplet.class" [_thread_blocked, id=2760]
  0x06318800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=2872]
  0x062f7000 JavaThread "CacheCleanUpThread" daemon [_thread_blocked, id=432]
  0x062e4400 JavaThread "traceMsgQueueThread" daemon [_thread_blocked, id=2420]
  0x062de800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=3768]
  0x062ddc00 JavaThread "AWT-Shutdown" [_thread_blocked, id=2572]
  0x062f0800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=2532]
  0x02bfa800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2772]
  0x02bf5c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2216]
  0x02bf4800 JavaThread "Attach Listener" daemon [_thread_blocked, id=204]
  0x02bf3c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1972]
  0x02bb4c00 JavaThread "Finalizer" daemon [_thread_blocked, id=2600]
  0x02bb0800 JavaThread "Reference Handler" daemon [_thread_blocked, id=2780]
  0x00fb9800 JavaThread "main" [_thread_in_native, id=2464]Other Threads:
  0x02ba7400 VMThread [id=2164]
  0x02bff400 WatcherThread [id=2536]VM state:not at safepoint (normal execution)VM Mutex/Monitor currently owned by a thread: NoneHeap
 def new generation   total 960K, used 855K [0x209d0000, 0x20ad0000, 0x21130000)
  eden space 896K,  88% used [0x209d0000, 0x20a96c38, 0x20ab0000)
  from space 64K,  93% used [0x20ac0000, 0x20acf008, 0x20ad0000)
  to   space 64K,   0% used [0x20ab0000, 0x20ab0000, 0x20ac0000)
 tenured generation   total 5860K, used 3732K [0x21130000, 0x216e9000, 0x269d0000)
   the space 5860K,  63% used [0x21130000, 0x214d5230, 0x214d5400, 0x216e9000)
 compacting perm gen  total 12288K, used 5699K [0x269d0000, 0x275d0000, 0x2a9d0000)
   the space 12288K,  46% used [0x269d0000, 0x26f60e60, 0x26f61000, 0x275d0000)
    ro space 8192K,  62% used [0x2a9d0000, 0x2aecb9c8, 0x2aecba00, 0x2b1d0000)
    rw space 12288K,  52% used [0x2b1d0000, 0x2b80e348, 0x2b80e400, 0x2bdd0000)Dynamic libraries:
0x00400000 - 0x00419000  C:\Program Files\Internet Explorer\iexplore.exe
0x7c920000 - 0x7c9b3000  C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c91e000  C:\WINDOWS\system32\kernel32.dll
0x77be0000 - 0x77c38000  C:\WINDOWS\system32\msvcrt.dll
0x77d10000 - 0x77da0000  C:\WINDOWS\system32\USER32.dll
0x77ef0000 - 0x77f39000  C:\WINDOWS\system32\GDI32.dll
0x77f40000 - 0x77fb6000  C:\WINDOWS\system32\SHLWAPI.dll          百思不得其解,不知道有没有高手能解决这个问题!我已经郁闷了好多天了:(,如果需要我可以提供DLL文件和APPLET代码