一个很简单的例子,
public class TestDll
{
static {
System.loadLibrary("BestMail");//这个我放在系统目录system32下,一个dll文件
}

//private int m;
public native void set(int i);
public native int get();
/**
 * @param args
 */
public static void main(String[] args)
{
// TODO 自动生成方法存根
TestDll td=new TestDll();
td.set(10);
System.out.println("hahah   "+td.get());
}}然后我javac这个文件,通过,然后javah -jni testdll时报错如下,
E:\Eclipse\eclipse\workspace\TestDll>javah -jni TestDll
error: cannot access TestDll
file TestDll.class not found
javadoc: error - Class TestDll not found.
Error: No classes were specified on the command line.  Try -help.为什么啊?????谢谢。

解决方案 »

  1.   

    这里的bestmail是一个发短信的控件,是不是这里应该填写我自己命名的dll名字啊?
      

  2.   

    你运行 javah 的时候,CLASSPATH 里能找到 TestDll 这个 class 吗?
      

  3.   

    这个class要放到哪里呢,我的classpath是这样的,C:\Program Files\Java\jre1.5.0\lib;C:\Program Files\Java\jdk1.5.0\bin;我就把刚才这个class放在c盘根目录下进行上面的命令的,是不是放错地方了
      

  4.   

    System.loadLibrary("BestMail");//这个我放在系统目录system32下,一个dll文件
    是不是这个文件"BestMail"缺省后缀名?