【发布时间】:2012-02-14 01:18:05
【问题描述】:
== 已编辑==
猜猜这与Lib有关。我正在使用MsmqJava,看起来如果我调用 Queue.sendBytes() 会发生错误,但如果我调用 Queue.send(Message) 则不会。谢谢你的一切。
== 已编辑 ==
我有一个为 64 位编译的 DLL(我用 dumpbin 检查过)。
我正在尝试运行一个使用该库的 Java 程序,但没有成功。 System.getProperty("sun.arch.data.model") dumps 64. 我已经成功地将该库与其他 Java 程序一起使用,所以我知道这不是它。这一定是我编译或实例化 JVM 的方式。任何人都知道可能会发生什么?错误如下:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006da48ad7, pid=3208, tid=4868
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V [jvm.dll+0x258ad7]
#
# An error report file with more information is saved as:
# hs_err_pid3208.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
我注意到由于某种原因,真的不知道是不是正常,JVM正在尝试加载一堆windows 32位库:
Dynamic libraries:
0x0000000000400000 - 0x000000000042e000 C:\Windows\system32\java.exe
0x0000000077420000 - 0x00000000775c9000 C:\Windows\SYSTEM32\ntdll.dll
0x0000000077200000 - 0x000000007731f000 C:\Windows\system32\kernel32.dll
0x000007fefd4e0000 - 0x000007fefd54c000 C:\Windows\system32\KERNELBASE.dll
0x000007fefe7e0000 - 0x000007fefe8bb000 C:\Windows\system32\ADVAPI32.dll
0x000007feff090000 - 0x000007feff12f000 C:\Windows\system32\msvcrt.dll
0x000007feff710000 - 0x000007feff72f000 C:\Windows\SYSTEM32\sechost.dll
0x000007feff130000 - 0x000007feff25d000 C:\Windows\system32\RPCRT4.dll
0x000000006d7f0000 - 0x000000006def4000 C:\Program Files\Java\jre6\bin\server\jvm.dll
0x0000000077320000 - 0x000000007741a000 C:\Windows\system32\USER32.dll
0x000007fefd950000 - 0x000007fefd9b7000 C:\Windows\system32\GDI32.dll
【问题讨论】:
-
我看到您使用的是 AMD。您尝试过 Intel 64 位吗?
-
在 64 位系统上,
system32中的所有文件都是 64 位的。 32 位文件位于SysWOW64中,因此 DLL 不会尝试加载 32 位库。即使文件是 64 位,也要责怪 MS 保留命名(包括文件夹名和文件名中的 32 个)...... -
谢谢。我无法在其他计算机上尝试它,因为我这里没有其他计算机。最奇怪的是,我还有另一个应用程序可以正常加载,但这个没有...我真的很紧张...
-
我会尝试 Java 6 update 30 来检查是不是已经修复的错误。
标签: java dll 64-bit java-native-interface 32-bit