VS2005和Eclipse中调试JNI的方法
2010年11月16日
1、用Eclipse编写JNI的JAVA程序,项目名称为DemoJNI,路径为E:\workspace\DemoJNI,JNI包设为 demo.jar,其中jni.demo.TestJNI是包含main函数的入口类。假设demo.jar要用到db.jar。
2、编写JNI DLL,生成动态库名为DemoJNI.dll。假设DemoJNI.dll需要动态库ipc.dll的支持。
3、在VS2005的项目属性中,设定如下:
命令 : E:\jdk1.6.0_07\bin\java.exe(JDK路径)
工作路经 : E:\jdk1.6.0_07\bin
命令行参数: -classpath "db.jar;demo.jar" jni.demo.TestJNI
基本的思路跟在命令行中执行Java程序类似。
4、将demo.jar、db.jar、DemoJNI.dll和ipc.dll都拷贝到E:\jdk1.6.0_07\bin下面。
建议不要拷贝到system32目录下,仅对Java虚拟机起作用,便于调试。
5、在VS2005中设定断点,即可跟踪调试。
6、Eclipse中调试JNI,注意虚拟机路径是否为E:\jdk1.6.0_07\bin\javaw.exe,否则需要将 DemoJNI.dll和ipc.dll拷贝E:\workspace\DemoJNI目录下。 背景:
C写的库,通过JNI本地化,生成接口相似的jar
操作步骤:
C写的库,可以通过简单的调用C库的接口的小程序Trace进去,也可以通过导入jar,作成java的小程序Trace,因为Java接口比较友好,容易实现各种用例,所以往往是用Java作成case进行Trace的
VS2005打开C库的工程,在工程属性页Debugging选项中进行以下设置:
1.Command项设置成java.exe
*windows下因为在环境变量PATH中已经有了java.exe,所以可以直接设置,否则要写绝对路径
2.Command Arguments中设置java执行参数,我喜欢使用-cp选项,把使用的jar包加载进来,把java工程目录下的class目录如bin加载进来
3.Working Directory则是java的工程目录
4.F5就可以在VS2005中跟踪了