我java使用JNative调用dll,运行方法,控制台报出#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c92ebd1, pid=3232, tid=7408
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_16-b02 mixed mode, sharing)
# Problematic frame:
# C  [ntdll.dll+0xebd1]
#
# An error report file with more information is saved as hs_err_pid3232.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
求解

解决方案 »

  1.   

    An error report file with more information is saved as hs_err_pid3232.log
    你去看看都是些什么呀
      

  2.   

    这是log里面的东西#
    # An unexpected error has been detected by HotSpot Virtual Machine:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c92ebd1, pid=3232, tid=7408
    #
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_16-b02 mixed mode, sharing)
    # Problematic frame:
    # C  [ntdll.dll+0xebd1]
    #---------------  T H R E A D  ---------------Current thread (0x003c6b28):  JavaThread "main" [_thread_in_native, id=7408]siginfo: ExceptionCode=0xc0000005, reading address 0x00ade000Registers:
    EAX=0x00000000, EBX=0x7ffa0220, ECX=0x03c04d5c, EDX=0x00ade000
    ESP=0x0005f698, EBP=0x0005f6a4, ESI=0x7ffa001c, EDI=0x0108dae9
    EIP=0x7c92ebd1, EFLAGS=0x00010202Top of Stack: (sp=0x0005f698)
    0x0005f698:   010c0187 0005f6f8 010c0187 0005f6cc
    0x0005f6a8:   77d1ae26 03ba0020 0218030e 0005f6dc
    0x0005f6b8:   00aa6ae0 01088c67 010c0187 4017c0fc
    0x0005f6c8:   0000000b 0005f6fc 77d3c76e 000003a8
    0x0005f6d8:   00aa6ae0 010c0187 0005f6f8 ffffffff
    0x0005f6e8:   00000001 4017c0fc 00000000 000003a8
    0x0005f6f8:   03ba0020 0005f730 77d3c730 9c01187e
    0x0005f708:   00aa6ae0 010c0187 0005f774 00000450 Instructions: (pc=0x7c92ebd1)
    0x7c92ebc1:   9a 7c 89 4d 08 74 58 8b 55 14 83 7d 18 00 74 4f
    0x7c92ebd1:   0f b6 02 d1 e0 66 8b b0 20 f1 99 7c 4f ff 4d 18 
    Stack: [0x00030000,0x00070000),  sp=0x0005f698,  free space=189k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C  [ntdll.dll+0xebd1]
    C  [USER32.dll+0xae26]
    C  [USER32.dll+0x2c76e]
    C  [USER32.dll+0x2c730]
    C  [vcl60.bpl+0x30019]
    C  [vcl60.bpl+0x30425]
    C  [vcl60.bpl+0x303ff]
    C  [vcl60.bpl+0x30546]Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j  org.xvolks.jnative.JNative.nInvoke(I)V+0
    j  org.xvolks.jnative.JNative.invoke()V+55
    j  cn.demo.Test.topc()I+47
    j  cn.demo.Test.main([Ljava/lang/String;)V+9
    v  ~StubRoutines::call_stub---------------  P R O C E S S  ---------------Java Threads: ( => current thread )
      0x00a81480 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=7404]
      0x00a80068 JavaThread "CompilerThread0" daemon [_thread_blocked, id=8140]
      0x00a91398 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=7760]
      0x003cf828 JavaThread "Finalizer" daemon [_thread_blocked, id=7596]
      0x003cebf0 JavaThread "Reference Handler" daemon [_thread_blocked, id=7544]
    =>0x003c6b28 JavaThread "main" [_thread_in_native, id=7408]Other Threads:
      0x00a52cf8 VMThread [id=7580]
      0x00a91240 WatcherThread [id=7036]VM state:not at safepoint (normal execution)VM Mutex/Monitor currently owned by a thread: NoneHeap
     def new generation   total 576K, used 479K [0x22ae0000, 0x22b80000, 0x22fc0000)
      eden space 512K,  93% used [0x22ae0000, 0x22b57f60, 0x22b60000)
      from space 64K,   0% used [0x22b60000, 0x22b60000, 0x22b70000)
      to   space 64K,   0% used [0x22b70000, 0x22b70000, 0x22b80000)
     tenured generation   total 1408K, used 0K [0x22fc0000, 0x23120000, 0x26ae0000)
       the space 1408K,   0% used [0x22fc0000, 0x22fc0000, 0x22fc0200, 0x23120000)
     compacting perm gen  total 8192K, used 407K [0x26ae0000, 0x272e0000, 0x2aae0000)
       the space 8192K,   4% used [0x26ae0000, 0x26b45fe8, 0x26b46000, 0x272e0000)
        ro space 8192K,  67% used [0x2aae0000, 0x2b042640, 0x2b042800, 0x2b2e0000)
        rw space 12288K,  47% used [0x2b2e0000, 0x2b88f8a0, 0x2b88fa00, 0x2bee0000)Dynamic libraries:
    0x00400000 - 0x0040d000  C:\Program Files\Java\jdk1.5.0_16\bin\javaw.exe
    0x7c920000 - 0x7c9b6000  C:\WINDOWS\system32\ntdll.dll
    0x7c800000 - 0x7c91e000  C:\WINDOWS\system32\kernel32.dll
    0x77da0000 - 0x77e49000  C:\WINDOWS\system32\ADVAPI32.dll
    0x77e50000 - 0x77ee3000  C:\WINDOWS\system32\RPCRT4.dll
    0x77fc0000 - 0x77fd1000  C:\WINDOWS\system32\Secur32.dll
    0x77d10000 - 0x77da0000  C:\WINDOWS\system32\USER32.dll
    0x77ef0000 - 0x77f39000  C:\WINDOWS\system32\GDI32.dll
    0x77be0000 - 0x77c38000  C:\WINDOWS\system32\MSVCRT.dll
    0x76300000 - 0x7631d000  C:\WINDOWS\system32\IMM32.DLL
    0x62c20000 - 0x62c29000  C:\WINDOWS\system32\LPK.DLL
    0x73fa0000 - 0x7400b000  C:\WINDOWS\system32\USP10.dll
    0x6d740000 - 0x6d8de000  C:\Program Files\Java\jdk1.5.0_16\jre\bin\client\jvm.dll
    0x76b10000 - 0x76b3a000  C:\WINDOWS\system32\WINMM.dll
    0x6d300000 - 0x6d308000  C:\Program Files\Java\jdk1.5.0_16\jre\bin\hpi.dll
    0x76bc0000 - 0x76bcb000  C:\WINDOWS\system32\PSAPI.DLL
    0x6d710000 - 0x6d71c000  C:\Program Files\Java\jdk1.5.0_16\jre\bin\verify.dll
    0x6d380000 - 0x6d39d000  C:\Program Files\Java\jdk1.5.0_16\jre\bin\java.dll
    0x6d730000 - 0x6d73f000  C:\Program Files\Java\jdk1.5.0_16\jre\bin\zip.dll
    0x66c40000 - 0x66c61000  E:\java\MyDlls\JNativeCpp.dll
    0x76990000 - 0x76ace000  C:\WINDOWS\system32\OLE32.dll
    0x770f0000 - 0x7717b000  C:\WINDOWS\system32\OLEAUT32.DLL
    0x02ed0000 - 0x02eda000  C:\WINDOWS\system32\Project1.dll
    0x400b0000 - 0x401f9000  C:\WINDOWS\system32\vcl60.bpl
    0x40000000 - 0x400aa000  C:\WINDOWS\system32\rtl60.bpl
    0x71a90000 - 0x71aa2000  C:\WINDOWS\system32\mpr.dll
    0x71a40000 - 0x71a4b000  C:\WINDOWS\system32\wsock32.dll
    0x71a20000 - 0x71a37000  C:\WINDOWS\system32\WS2_32.dll
    0x71a10000 - 0x71a18000  C:\WINDOWS\system32\WS2HELP.dll
    0x77bd0000 - 0x77bd8000  C:\WINDOWS\system32\version.dll
    0x5d170000 - 0x5d20a000  C:\WINDOWS\system32\comctl32.dll
    0x72f70000 - 0x72f96000  C:\WINDOWS\system32\winspool.drv
    0x76320000 - 0x76367000  C:\WINDOWS\system32\comdlg32.dll
    0x7d590000 - 0x7dd84000  C:\WINDOWS\system32\SHELL32.dll
    0x77f40000 - 0x77fb6000  C:\WINDOWS\system32\SHLWAPI.dll
    0x74c90000 - 0x74cb0000  C:\WINDOWS\system32\oledlg.dll
    0x3c000000 - 0x3c014000  E:\java\MyDlls\HOSTCM32.DLL
    0x32600000 - 0x32778000  C:\PROGRA~1\Borland\CBUILD~1\Bin\CC3260MT.DLL
    0x77180000 - 0x77283000  C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\comctl32.dll
    0x5adc0000 - 0x5adf7000  C:\WINDOWS\system32\uxtheme.dll
    0x10000000 - 0x10079000  C:\program files\kingsoft\kingsoft antivirus\kwsui.dll
    0x03600000 - 0x03656000  C:\Documents and Settings\All Users\Application Data\Tencent\TSVulFw\TSVulFW.DAT
    0x63000000 - 0x630e6000  C:\WINDOWS\system32\WININET.dll
    0x03670000 - 0x03679000  C:\WINDOWS\system32\Normaliz.dll
    0x1a400000 - 0x1a532000  C:\WINDOWS\system32\urlmon.dll
    0x5dca0000 - 0x5de88000  C:\WINDOWS\system32\iertutil.dll
    0x7c420000 - 0x7c4a7000  C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989\MSVCP80.dll
    0x78130000 - 0x781cb000  C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989\MSVCR80.dll
    0x74680000 - 0x746cc000  C:\WINDOWS\system32\MSCTF.dll
    0x03980000 - 0x03a67000  C:\program files\kingsoft\kingsoft antivirus\kswebshield.dll
    0x61880000 - 0x618ba000  C:\WINDOWS\system32\OLEACC.dll
    0x73640000 - 0x7366e000  C:\WINDOWS\system32\msctfime.imeVM Arguments:
    jvm_args: -Dfile.encoding=GBK
    java_command: cn.demo.Test
    Launcher Type: SUN_STANDARDEnvironment Variables:
    JAVA_HOME=C:\Program Files\Java\jdk1.5.0_16
    CLASSPATH=C:\Program Files\Java\jdk1.5.0_16\lib;C:\Program Files\Java\jdk1.5.0_16\lib\tools.jar;C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar
    PATH=D:/Program Files/Genuitec/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client;D:/Program Files/Genuitec/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin;C:\PROGRA~1\Borland\CBUILD~1\Bin;C:\PROGRA~1\Borland\CBUILD~1\Projects\Bpl;d:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;D:\Program Files\MySQL\MySQL Server 5.0\bin;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;d:\Program Files\Tencent\QQPCMgr\6.6.2136.201;C:\Program Files\Java\jdk1.5.0_16\bin;;d:\Program Files\Tencent\QQPCMgr\6.6.2136.201
    USERNAME=Administrator
    OS=Windows_NT
    PROCESSOR_IDENTIFIER=x86 Family 16 Model 6 Stepping 2, AuthenticAMD---------------  S Y S T E M  ---------------OS: Windows XP Build 2600 Service Pack 3CPU:total 2 (cores per cpu 2, threads per core 1) family 31 model 6 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, mmxext, 3dnowext, 3dnowMemory: 4k page, physical 2097151k(1708336k free), swap 4194303k(2584168k free)vm_info: Java HotSpot(TM) Client VM (1.5.0_16-b02) for windows-x86, built on May 28 2008 01:04:49 by "java_re" with MS VC++ 6.0
      

  3.   

    实在是没看懂,不知道为什么,我是用JNative调用dll出现的问题,dll里有3个方法,为编译之前方法为:extern "C" __declspec(dllexport) int __stdcall Calc(int a, int b) //测试函数
    {
            return a+b;
    }extern "C" __declspec(dllexport) int __stdcall ToPC(String AppPath) //导出函数
    {
        //String AppPath = ExtractFilePath(Application->ExeName);
        int com = 0;    //String fname = AppPath + "receive";
        // readTxt();    ShowMessage(AppPath);    int i = dt900comm(com,AppPath.c_str(),2,0);    //  采集器文件传输到电脑
        return i;
    }extern "C" __declspec(dllexport) int __stdcall ToPDA(String fname) //导出函数
    {
      //String AppPath = ExtractFilePath(Application->ExeName);  ShowMessage(fname);  int com = 0;  //String fname = AppPath + "send\\pd.txt";
      int i = dt900comm(com,fname.c_str(),1,1);    //  传输文件到采集器
      return i;
    }我调用第一个方法测试成功,调用第二个就报错了