JNI入门中helloworld常见问题

看了我转载的那篇JNI入门感受确实写得很好,可是配置细节没怎么说明,我这里说明一下。java

主要是按照完成helloworld这个程序的步骤出现的问题。全部的程 序都是经过命令行来编译的。spa

问题一:NotClassDeff....Error
        固然了这个问题绝对是classpath没有配置好,.;...  这个东西想必你们已经很熟悉了,不过有两点须要说明:1.注意文件路径中斜杠的方向,2.在win7中配置好环境变量不须要从新启动系统,只须要从新启动命令行。解决了这个问题你应该就能够获得.class文件命令行

问题二:javah 不是命令或文件。。。 或javac 不是命令或文件。。。
        这是由于没有设置好path,只要把java安装目录/bin,放在path中便可,还有win7只须要重启命令行。解决了这两个问题你就能够获得 hello.h文件了开发

问题三:在写好c程序后使用cl命令编译成dll会出现:XXX.lib not find 。。。 或 stdio.h not find
        这就像java命令找不到 classpath同样, 只要添加环境变量 include = vc安装目录下的include文件;lib=vc安装目录下的lib文件便可,重启命令行。下面你就会获得dll文件。io

其余的一些问题极可能是因为你的文件名,属性名等等没有对应好而形成的,请仔细检查。
    "java中System.loadLibrary加载的 name"  =  "dll的文件名"
    ".c中应用的头文件.h" = "java的文件名"
    ".c中的方法名" = "java中native声明的方法名"
    "java类名要和文件名一致"编译

另外在说明一下javah这个命令,它和javac不一样 ,javac只要在当前目录就能够编译.java文件,javah须要在工程的根目录,好比你的类在包cn.abc下 那么 你要在cn同级目录中使用  javah cn.abc.YOURCLASSNAME 入门

以上就是可能出现的一些环境问题,由于使用jni的都应该是有必定开发经验的了,因此我说的比较笼统。若是有任何问题,欢迎提出来。class

相关文章
相关标签/搜索