2010.4.2日晚-2010.4.3下午:

需要开发个小程序,用到了java 调用dll库。

dll我用delphi开发,其中涉及到处理xml文档.此dll在delphi开发环境下测试通过,可一在java环境中调用,则jvm崩溃.

为解决此问题

,从2010.4.2日下午一直干到2010.4.3日清晨4:00,未解决,在无比郁闷中沉沉睡去。

起床已是4.3日10:00点,隐约醒来,想着未解决的问题,继续郁闷,再睡不着,于是起床继续。

由java调用dll,程序又不报异常,直接由jvm崩溃,无法调试,导致我几乎崩溃。

在我崩溃前最后几秒(2010.4.3

13:49),忽然灵光一闪,想到delphi操作xml文档,前后必加

CoInitialize(nil);

......

coUnInitialize();

是不是此原因呢?

再看delphi代码,果然,在调测dll用的例子中,我加了此两句,但在dll本身中未加此两句,所以用delphi本身的测试用例无问题,一到java中就出问题,于是把此两句加在dll操作xml相关位置。再次运行java,......pass,ok!!!!!

狂喜中!!!

反思开发过程:明知delphi操作xml需加CoInitialize(nil),coUnInitialize(),却又未充分认识它,导致时间浪费了整整一天,还茶不思饭不想。

jvm崩溃日志如下:

#

# A fatal error has been detected by the Java Runtime

Environment:

#

# Internal Error (0xeedfade), pid=5580, tid=3132

#

# JRE version: 6.0_18-b07

# Java VM: Java HotSpot(TM) Client VM (16.0-b13 mixed mode

windows-x86 )

# Problematic frame:

# C [kernel32.dll+0x3fbae]

#

# 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 (0x0237ac00): JavaThread "main" [_thread_in_native,

id=3132, stack(0x00a80000,0x00ad0000)]

siginfo: ExceptionCode=0xeedfade, ExceptionInformation=0x04ddca7d

0x04fd1684 0x800401f0 0x04ddca7d 0x04fd1598 0x00abf92c

0x00abf8f8

Registers:

EAX=0x00abf874, EBX=0x800401f0, ECX=0x00000007,

EDX=0x00000000

ESP=0x00abf874, EBP=0x00abf8c4, ESI=0x04ddca7d,

EDI=0x04fd1598

EIP=0x766ffbae, EFLAGS=0x00000216

Top of Stack: (sp=0x00abf874)

0x00abf874: 0eedfade 00000001 00000000 766ffbae

0x00abf884: 00000007 04ddca7d 04fd1684 800401f0

0x00abf894: 04ddca7d 04fd1598 00abf92c 00abf8f8

0x00abf8a4: 04dcd5f6 00000000 04dcd60c 04db33fe

0x00abf8b4: 00000001 04dcd634 00abf8f8 04db33c5

0x00abf8c4: 00abf92c 04ddca7d 0eedfade 00000001

0x00abf8d4: 00000007 00abf8dc 04ddca7d 04fd1684

0x00abf8e4: 800401f0 04ddca7d 04fd1598 00abf92c

Instructions: (pc=0x766ffbae)

0x766ffb9e: a9 00 00 83 c4 0c 8d 45 b0 50 ff 15 14 17 6c 76

0x766ffbae: c9 c2 10 00 90 90 90 90 90 8b ff 55 8b ec 51 51

Stack: [0x00a80000,0x00ad0000], sp=0x00abf874, free

space=fe00abf3d4k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code,

C=native code)

C [kernel32.dll+0x3fbae]

C [insureDll.dll+0x2ca7d]

C [insureDll.dll+0x5a9f]

C [insureDll.dll+0x2c6b1]

C [insureDll.dll+0x3417b]

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

insure.HospitalDll.get_GlobalParam(Ljava/lang/String;)Ljava/lang/String;+59

j insure.HospitalDll.main([Ljava/lang/String;)V+203

v ~StubRoutines::call_stub

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

Java Threads: ( => current thread )

0x02469400 JavaThread "Low Memory Detector" daemon

[_thread_blocked, id=3904, stack(0x04710000,0x04760000)]

0x02467000 JavaThread "CompilerThread0" daemon [_thread_blocked,

id=5708, stack(0x046c0000,0x04710000)]

0x02453c00 JavaThread "JDWP Command Reader" daemon

[_thread_in_native, id=3936, stack(0x04670000,0x046c0000)]

0x02452c00 JavaThread "JDWP Event Helper Thread" daemon

[_thread_blocked, id=1448, stack(0x04620000,0x04670000)]

0x02450000 JavaThread "JDWP Transport Listener: dt_shmem" daemon

[_thread_blocked, id=4408, stack(0x045d0000,0x04620000)]

0x02420800 JavaThread "Attach Listener" daemon [_thread_blocked,

id=1868, stack(0x04580000,0x045d0000)]

0x0241d800 JavaThread "Signal Dispatcher" daemon [_thread_blocked,

id=6024, stack(0x04530000,0x04580000)]

0x0240e800 JavaThread "Finalizer" daemon [_thread_blocked, id=6100,

stack(0x02300000,0x02350000)]

0x02409c00 JavaThread "Reference Handler" daemon [_thread_blocked,

id=5136, stack(0x00bd0000,0x00c20000)]

=>0x0237ac00 JavaThread "main" [_thread_in_native,

id=3132, stack(0x00a80000,0x00ad0000)]

Other Threads:

0x02406400 VMThread [stack: 0x00ad0000,0x00b20000] [id=5956]

0x0246cc00 WatcherThread [stack: 0x04760000,0x047b0000]

[id=3940]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap

def new generation total 4928K, used 1029K [0x10010000, 0x10560000,

0x15560000)

eden space 4416K, 23% used [0x10010000, 0x10111620,

0x10460000)

from space 512K, 0% used [0x10460000, 0x10460000, 0x104e0000)

to space 512K, 0% used [0x104e0000, 0x104e0000, 0x10560000)

tenured generation total 10944K, used 0K [0x15560000, 0x16010000,

0x20010000)

the space 10944K, 0% used [0x15560000, 0x15560000, 0x15560200,

0x16010000)

compacting perm gen total 12288K, used 2383K [0x20010000,

0x20c10000, 0x24010000)

the space 12288K, 19% used [0x20010000, 0x20263e60, 0x20264000,

0x20c10000)

No shared spaces configured.

Dynamic libraries:

0x00400000 - 0x00424000 D:Javajdk1.6.0binjava.exe

0x77c50000 - 0x77d77000 C:Windowssystem32ntdll.dll

0x766c0000 - 0x7679c000 C:Windowssystem32kernel32.dll

0x76300000 - 0x763c6000 C:Windowssystem32ADVAPI32.dll

0x76aa0000 - 0x76b63000 C:Windowssystem32RPCRT4.dll

0x72850000 - 0x7286e000 C:Windowssystem32ShimEng.dll

0x76160000 - 0x7618c000 C:Windowssystem32apphelp.dll

0x6efe0000 - 0x6f068000 C:WindowsAppPatchAcLayers.DLL

0x76d50000 - 0x76ded000 C:Windowssystem32USER32.dll

0x77dd0000 - 0x77e1b000 C:Windowssystem32GDI32.dll

0x76ee0000 - 0x779f0000 C:Windowssystem32SHELL32.dll

0x769f0000 - 0x76a9a000 C:Windowssystem32msvcrt.dll

0x77e20000 - 0x77e79000 C:Windowssystem32SHLWAPI.dll

0x76b70000 - 0x76cb5000 C:Windowssystem32ole32.dll

0x76cc0000 - 0x76d4d000 C:Windowssystem32OLEAUT32.dll

0x761b0000 - 0x761ce000 C:Windowssystem32USERENV.dll

0x76190000 - 0x761a4000 C:Windowssystem32Secur32.dll

0x73510000 - 0x73552000 C:Windowssystem32WINSPOOL.DRV

0x75b80000 - 0x75b94000 C:Windowssystem32MPR.dll

0x763d0000 - 0x763ee000 C:Windowssystem32IMM32.DLL

0x77b80000 - 0x77c48000 C:Windowssystem32MSCTF.dll

0x76470000 - 0x76479000 C:Windowssystem32LPK.DLL

0x768e0000 - 0x7695d000 C:Windowssystem32USP10.dll

0x10000000 - 0x10010000

C:PROGRA~1KASPER~1KASPER~1.0FOr3hook.dll

0x76260000 - 0x76267000 C:Windowssystem32PSAPI.DLL

0x75d90000 - 0x75f2e000

C:WindowsWinSxSx86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6002.18005_none_5cb72f96088b0de0comctl32.dll

0x7c340000 - 0x7c396000 D:Javajdk1.6.0jrebinmsvcr71.dll

0x6d8b0000 - 0x6db47000

D:Javajdk1.6.0jrebinclientjvm.dll

0x74b50000 - 0x74b82000 C:Windowssystem32WINMM.dll

0x74b10000 - 0x74b4d000 C:Windowssystem32OLEACC.dll

0x6d860000 - 0x6d86c000 D:Javajdk1.6.0jrebinverify.dll

0x6d3e0000 - 0x6d3ff000 D:Javajdk1.6.0jrebinjava.dll

0x6d340000 - 0x6d348000 D:Javajdk1.6.0jrebinhpi.dll

0x6d430000 - 0x6d459000 D:Javajdk1.6.0jrebinjdwp.dll

0x6d750000 - 0x6d756000 D:Javajdk1.6.0jrebinnpt.dll

0x6d8a0000 - 0x6d8af000 D:Javajdk1.6.0jrebinzip.dll

0x6d2a0000 - 0x6d2a8000 D:Javajdk1.6.0jrebindt_shmem.dll

0x66c40000 - 0x66c61000 D:insure_XTinsurextJNativeCpp.dll

0x04db0000 - 0x04df1000 D:insure_XTinsurextinsureDll.dll

0x00390000 - 0x0039b000 D:BorlandDelphi7Binborlndmm.dll

0x72c40000 - 0x72c47000 C:Windowssystem32wsock32.dll

0x77e80000 - 0x77ead000 C:Windowssystem32WS2_32.dll

0x77dc0000 - 0x77dc6000 C:Windowssystem32NSI.dll

0x00a40000 - 0x00a6d000 C:Windowssystem32Mwic_32.dll

VM Arguments:

jvm_args: -Xdebug -Xrunjdwp:transport=dt_shmem,address=javadebug

-Dfile.encoding=UTF-8 -Djava.security.policy=applet.policy

java_command: insure.HospitalDll

Launcher Type: SUN_STANDARD

Environment Variables:

JAVA_HOME=D:Javajdk1.6.0

PATH=D:Javajdk1.6.0bin;D:MinGWbin;D:BorlandDelphi7Bin;D:BorlandDelphi7ProjectsBpl;D:oraclelxproduct11.1.0client_1bin;D:JavaFXjavafx-sdk1.2bin;D:JavaFXjavafx-sdk1.2emulatorbin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:Program

FilesDiskeeper CorporationDiskeeper;C:Program FilesCommon

FilesLenovo;C:Program FilesThinkPadConnectUtilities;C:Program

FilesLenovoClient Security Solution;C:Program FilesCommon

FilesThunder NetworkKanKanCodecs;d:SybaseSQL Anywhere

8win32;d:SybaseSharedwin32;d:SybaseSharedSybase Central

4.1;d:SybasePowerDynamowin32;d:StormIICodec;d:StormII

USERNAME=lx

OS=Windows_NT

PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13,

GenuineIntel

--------------- S Y S T E M ---------------

OS: Windows Vista Build 6002 Service Pack 2

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15

stepping 13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 3118628k(1031708k free), swap

6447840k(4033784k free)

vm_info: Java HotSpot(TM) Client VM (16.0-b13) for windows-x86 JRE

(1.6.0_18-b07), built on Dec 17 2009 13:35:55 by "java_re" with MS

VC++ 7.1 (VS2003)

time: Sat Apr 03 12:52:39 2010

elapsed time: 16 seconds

java 调用 pb dll_[转载]一个java调用delphi写的dll问题,郁闷了一天一晚解决相关推荐

  1. 第一个java程序的错误_我是一名java初学者,执行第一个java程序welcome.java出现了以下错误,这是为什么?...

    我是一名java初学者,执行第一个java程序welcome.java出现了以下错误,这是为什么? welcome.java: import javax.swing.*; public class w ...

  2. 一个java类可以有_一个.java文件中可以有几个同级类?

    1.在一个.java文件中可以有多个同级类(和public一样的位置,注意不是内部类).其修饰符只可以public/abstract/final/和无修饰符,不能是其他的protected/priva ...

  3. java接口自动化demo_第一个java 接口自动化程序

    第一个Java实现的接口测试 御都 字数 1065 · 阅读 0 2019-04-09 08:14 一.背景 使用HttpClient框架提交一个post&get申请,并对打印出返回值和状态码 ...

  4. 【Java】我的第一个 JAVA 程序:Hello,world!

    Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...

  5. java 包含汉字,【转载】Java判断字符串中是不是包含汉字

    [转载]Java判断字符串中是否包含汉字 import java.util.regex.Matcher; import java.util.regex.Pattern; public class If ...

  6. 如何创建第一个java程序_创建第一个java程序

    开发环境:ubuntu 10.04 + eclipse 方法一:打开eclipse编译器,选择 File->New->Java project,输入工程名称,点击finish,在工程目录中 ...

  7. java string最大长度_一个Java字符串中到底有多少个字符?

    作者:鸟窝 依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是 (0),最大值是(65535), 也就是一个字符以2个字节来表示,难道Java最多只能表示 65535个 ...

  8. 小汤学编程之JAVA基础day01——JAVA基本概念、第一个JAVA程序

    一.JAVA的概念 1.名字的由来      2.java之父     3.java的分类     4.虚拟机跨平台原理 二.第一个JAVA程序 1.编译环境      2.环境变量     3.用黑 ...

  9. 一个java程序_从另一个java程序运行java程序

    我正在研究一个简单的java程序.它只是编译并执行另一个java程序.我正在使用Runtime.exec()函数进行编译和运行.编译没有问题.但是当它运行时,如果第二个程序需要输入来从键盘读取,我不能 ...

  10. java有几大对象_一个 Java 对象到底有多大?

    阅读本文大概需要 2.8 分钟. 出处:http://u6.gg/swLPg 编写 Java 代码的时候,大多数情况下,我们很少关注一个 Java 对象究竟有多大(占据多少内存),更多的是关注业务与逻 ...

最新文章

  1. 「Python」socket指南
  2. 键盘流的逆袭- Idea 中使用 VIM mode 提高生成效率
  3. 深入 Adobe Reader 保护模式 —— 第一部分 —— 设计
  4. ASP.NET AJAX Programmer's Reference : with ASP.NET 2.0 or ASP.NET 3.5
  5. 由帧内8x8预测到MBAFF时相邻块的推导
  6. 机顶盒改成无线打印服务器,【当贝市场】如何将网络机顶盒改装成无线路由器...
  7. 一键清理C盘垃圾文件,让你的电脑运行飞起
  8. 修改Linux系统最大TCP连接数限制
  9. 一文彻底搞懂加密、数字签名和数字证书,看不懂你打我!
  10. 恩格玛密码机的工作原理
  11. 【历史上的今天】12 月 21 日:Ruby 语言问世;玛雅预言世界末日;计算机先驱诞生日
  12. 去掉网页从网页中拷贝到word中段落带有的背景颜色
  13. Python 正则re模块之compile()和findall()详解
  14. 利用html5画出五角星画出星空
  15. 如何处理高并发和单点故障
  16. I am a boy!
  17. 神经网络按结构可以分为,神经网络主要包括哪些
  18. 安卓设置keychain_IOS的keychain的三种使用方法
  19. 渝北统景碑口规划开发_渝北区御临河碑口水库主体工程开工建设
  20. R包——maftools可视化神器

热门文章

  1. 英语基础语法学习笔记 0
  2. 亚马逊防关联方法适合shopee平台吗?
  3. matlab的提示符,在 MATLAB 命令窗口中的“ ”标志为 MATLAB 的 的提示符,“│”标志为 提示符。...
  4. #低码系列#如何设计一个低代码平台?
  5. c语言中pinMode的作用,Arduino C语言的基本结构
  6. 【屏幕适配】像素密度 分辨率 dp px的关系
  7. 二叉树求解前序序列、中序序列、后序序列
  8. Xilinx FPGA平台DDR3设计保姆式教程(2)DDR3各时钟频率及带宽分析
  9. Alibaba微服务组件Nacos单机+集群配置 prometheus+grafana监控配置及注册中心实战【收获满满】
  10. matlab fig图片读取,从Matlab .fig文件中读取数据,并重新绘图