按照网上查到的JNI编写步骤写helloworld,生成了头文件,dll,java调用dll的时候出现异常:
Thread[main](Suspended(exception UnsatisfiledLinkError))
ClassLoader.loadLibrary(Class, String, boolean) line: not available
Runtime.loadLibrary0(Class, String) line: not available
System.loadLibrary(String) line: not available
HelloWorld.<clinit>() line: 5
从昨天折腾到现在,问题终于解决了。找不到dll的原因是我的jdk是64位的,而生成的dll是32位的。用eclipse运行的时候没有看到这个错误信息,后来我尝试在cmd下运行,发现了错误:Can't load IA 32-bit .dll on a AMD 64-bit platform。我尝试用vs2010输出64位dll,但是还是报这个错,不知道为什么。最后换了个32位的jdk,32位的eclipse,生成32位dll,解决!