dll文件没找到,
我以前在98中出该异常的原因是大小写,改为小写后就没问题了(部分机器),
还有

解决方案 »

  1.   

    很简单:
    (-)确定文件是否正确(你说已经正确了)
    (二)查看你使用的JVM属性java.library.path,看看的那个dll在不在路径中。
    不要问我怎么看呀,那样我就昏到了。System.getProperty("java.library.path")
      

  2.   

    呵呵,这个问题我好像原来也遇到过。我原来是使用的JBuilder7编写Java程序,调用VC编写的Dll文件,却总是报错(错误信息与你所说的类似)。
    分析原因:
    首先肯定不是动态链接库没有找到,因为错误信息只是说Add方法没有找到(你可以尝试将动态链接库移到另外的一个目录中,然后运行Java程序,错误信息坑顶不一样);
    后来,我发现用JBuilder编写程序时,它都将类分配在一个Packege中,而在使用Javah命令生成.h文件时,.h文件中却没有该包的信息。这就是问题的所在。
    所以,我认为你的程序也是存在这样的问题,Java程序在调用Dll文件时找不到想要的方法(虽然你认为自己都是对的)
    参考解决方法:
    不要使用Javah命令行生成.h文件,而是使用JBuilder来生成(具体在哪个地方,因为我现在没有JBuilder我不好说,你嫌自己找一下吧)。
      

  3.   

    我的dll文件是用delphi写的,没有用javah生成的.h文件
    大部分文章介绍都是是用c/c++调用.h,然后实现dll,那delphi写的dll要注意什么?
      

  4.   

    peter207(辉) ( ) 信誉:100 你太勇敢了,但是SUN的建议是不错的,因为JVM是按照他本身(就是SUN规定)的规则来进行函数名改编调用的,你用不用 javah是次要的,主要的问题是你要保证函数名改变符合SUN的JNI规范的。还有(只是建议),JNI最好还是用c语言系列实现比较好的。同时你用delphi写的时候,要保证调用机制的问题,是C style调用,而delphi (pascal)系列是用pascal调用的,我不知道怎么转,因为偶没有用过delphi的,不好意思,帮不上你什么
      

  5.   

    EdwardPeng(皮斯凯) 说得有道理。
    我也遇到过类似情况,我的class是在package中的,而用javah生成时没有包含package信息,后来自己修改了头文件使得接口函数包括package名称(?不知是否javah如何可以编译得到包含package的头文件)然后动态库调用就ok了,不过我是用c++写的。看看你的class是否在packge中;
    另外delphi我想应该有动态库的export声明的,你检查看看
      

  6.   

    终于搞定了,不过还是用c++写了一个dll