开发工具Elipse,VC61. java生成的class文件Test.class 放到,E:\Test.class2. dll工程使用Debug模式,JNI调用已指定到VC6 Debug生成的dll。   调试参数为C:\jdk1.5.0_08\bin\java.exe -classpath .; E:\Test调用后,cmd窗口一闪,
报的错误是:
   Exception in thread "main" java.lang.NoClassDefFoundError: E:\Test最终目的是可以直接在dll里设置断点,调试里面的函数。不使用printf()或log文件。下面,我还要调试C#内的代码,也是JNI调用方式。
必须先解决目前问题呐。

解决方案 »

  1.   

    你都用Elipse了,怎么还用CMD来起动你的程序呢?那不是等了脱了裤子放屁吗?直接用Elipse来起动就可以了.对于你要高度的问题,你可以用CPPUNIT.也可以在VC中写一个MAIN函数来调试,干嘛要整得那么复杂呢?
      

  2.   


    To 1楼:
    模拟?那还不得解决JNICALL,JNIEXPORT,JNIEnv *env这些问题。
    等于要在C环境中先解决Java调用,才能调试dll了。这个难度估计更大。倒可以把所有接口直接也用VC类型实现一下,调试OK后再转成JNI接口去。
    这个思路倒不错。To 2楼:
    cmd不是Elipse使用的,而是调试VC dll时,加载外部命令java后,自动输出的。
    我不习惯Elipse运行c++代码,还是喜欢老的VC6的IDE,有感情了呀。CPPUNIT.这个东东,你可以灌点知识给我,没接触过,等忙完了再研究。
    MAIN函数调试问题,和1楼类似,有点难度。To All:
    正因为以前没使用过JNI,才来问问大家以前可有办法直接调试啊。
    能省时间就省了,时间就是生命。没有现成方法,那只能自己解决去了。
      

  3.   

    全程都在c环境呢,用c启动jvm,这样做断点不知道行不行
    http://topic.csdn.net/u/20081016/21/436b2d9f-d3bc-4f64-ab88-b16a25233bb8.html
      

  4.   

    http://blog.csdn.net/xxben/archive/2007/12/16/1941419.aspx没有试过,仅供参考。
      

  5.   

    传智播客_Java培训教程_JNI
    这里面讲的很细了,你可以直接弄明白一切的.
      

  6.   


    谢谢提供参考,终于可以正常调试了,更喜欢VC了。
    目前做java 没办法啊~~(刘德华 天下无贼里的说话口气),
    做完该项目,做psp开发去了,呵呵~~
    又可以回到c或c++开发了,还有linux,,, :D最后总结一下:
    1. 原来的workpath,我没有设置。
    2. 参数设置不正确。 
      -classpath 一直带有.;(一直以为java中带这个,总是没错的。)
      原错误:
       -classpath .;E:\WorkBench\Java\WorkSpace\...\classes 
                  E:\WorkBench\Java\WorkSpace\...\classes\Test
      正确的:-classpath E:\WorkBench\Java\WorkSpace\...\classes Test
    3. dll输出路径可以任意指定,不必和class文件在一起。我目前就是这么做的。原调试设置Dialog,都是自己摸索出的。没试过调试java类文件和dll一起运行。
    有点意思。再次谢谢各位。