我的电脑一直处于开启状态,并且几个月后它一直希望我从win7更新到win10。我总是拒绝,但有一天早上我发现我的电脑更新了,并出现了一个新问题。
我有一些java项目在win7上工作正常,现在我不能使用DLL,错误是“java.lang.UnsatisfiedLinkError:无法加载库'CidGen64.dll':指定的模块不能找到“。
问题仅出现在NetBeans中,当我使用JRE运行应用程序时,它可以正常工作。我尝试像这样更改libpath,但错误是一样的。
System.setProperty(“java.library.path”,LibPath);
UPDATE1: 这不是重复,我应用了所谓的重复的步骤,并没有工作。它是一个windows 10< - >。 Netbeans或JDK问题。
UPDATE2: 我发布了一个在XP中运行的NetBeans项目(我没有win7),在Windows 10中失败了。The project is here
答案 0 :(得分:1)
让我们先解决问题所在。并不是带有DLL的Java程序在Windows 10上不起作用。这是不可信的。如果它确实是真的那么,到现在为止,这些尖叫声已经在地球上传播了数千次。
对我来说,有两个看似合理的解释:
您的JDK和/或Netbeans安装已被升级所困扰。解决方案:卸载两者,下载最新副本并重新安装。
不知何故,您没有正确指定库路径。例如,你说你“检查过libpath是否正确” ......但你实际上并没有告诉我们它是什么。 (我可以想到可能错误的3种非显而易见的方式。)
另一种可能性是它是32位JVM与64位DLL问题。但是,这不符合您提供的证据。同样存在文件权限问题。
从代码设置java.library.path也应该起作用
这取决于:
最后,如果你将-verbose:jni
添加到java命令中,它应该告诉你从哪里加载本机库,并且(我认为)在库加载失败时为你提供更多信息。