我正在尝试加载一个相应地加载原始 dll 的本机库。但是在另一台运行 XP 32bit 的计算机上,它工作正常。在 win7 64 位系统上执行时将无法加载。在 xp 机器上,dll 文件可能与类文件位于同一目录中,但是为了不出现不满意的链接错误,我不得不将文件复制到 system32 文件夹中。然后它给出了一个错误,指出不能在 64 位进程上加载 32 位 dll。我下载了32位jdk,并在项目中设置jdk加载32位jdk。完成后,我再次收到不满意的链接错误,文件仍在 system32 以及类文件旁边。我很困惑为什么它会在使用 64 位 jdk 时找到库,而在 32 位 jdk 中找不到。
...
static {
System.loadLibrary("K8055jni");
}
Exception in thread "main" java.lang.UnsatisfiedLinkError: no K8055jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at K8055jni.<clinit>(K8055jni.java:50)
at Test.main(Test.java:4)
如何让 32 位 jdk 找到相同的文件?