在Java中加载dll对于Windows XP

时间:2011-12-22 23:35:37

标签: java

我正在尝试使用我在使用Makefile的linux机器上构建的System.loadLibrary("myDllFile")来加载dll。我得到了

  

java.lang.UnsatisfiedLinkError c:\ test \ myDllFile.dll:无法在IA 32位平台上加载此.dll(机器代码= 0x101)

当我运行包含loadLibrary语句的主java类时出现

异常。我试图在Windows XP上运行java类。我需要一个单独的DLL用于Windows XP(32位)和Windows 7(64位)吗?

1 个答案:

答案 0 :(得分:1)

这是对的。您必须移植本机代码才能在每个操作系统上运行,并将其单独链接。

但是,如果您实际拥有.dll而不是.so,则听起来您可能已经为Win64进行了交叉编译,当您打算为Win32执行此操作时。 (也许使用MinGW?)如果你有这样的交叉编译器设置,你应该能够为Win32和Win64指定构建。或者,如果您的Makefile碰巧不正常,您可以告诉您的64位Linux系统使用setarch i686伪装成32位。

如果你有一个Linux .so,那么移植到Windows需要更多的工作......