你的那个DLL只要放在系统的PATH目录下面就可以了,不要放在和类的同一目录如果你说没有包名字的时候可以,那么你始终将那个DLL放在那个目录就行,
不要理会包名(当然你换了包名,那个DLL的所有函数名字都要更改一次)

解决方案 »

  1.   

    无论你怎么样调用你的类,包括reflect方法都是可以自动调用那个dll的
      

  2.   

    楼上的老兄你说明白 点,分就是你的了,我的dll一直没有动,而且我还把它拷贝到path目录下,比如System32,你说的dll的所有函数名字要改,我也想到了。可是我发现有包的时候和没有包的时候所生成.h文件是一样的。
    谁oicq 或者icq 或者msn在线,在线帮忙一定重谢。
    我的oicq 64017120,
      

  3.   

    那是肯定不对的,包名更改了,函数名字一定有所更改。估计你是拿到了以前的版本来生成.h文件函数名字规范是这样的
    Java_包名1_包名2_类名字_方法名
    如果你说没有变化肯定是不对的
      

  4.   

    应执行:
    javah jni.MyMail
    重新生成头文件,重新编译生成.dll
    否则死路一条
      

  5.   

    两位老兄说对了,主要是因为我生成头文件的时候,没有在包外执行,还是执行javah MyMail
    应该是退到上一级目录,执行javah jni.MyMail.可是为什么不报错了。
    害得我辛苦了一阵。小弟说话算话,分给2位了