JNI调用C++ DLL时,如何调试dll呢?(VC调试高手请给与帮助)

红男爵 2008-10-17 10:55:08
开发工具Elipse,VC6

1. java生成的class文件Test.class 放到,E:\Test.class

2. 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调用方式。
必须先解决目前问题呐。
...全文
934 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyujia 2008-10-17
  • 打赏
  • 举报
回复
全程都在c环境呢,用c启动jvm,这样做断点不知道行不行
http://topic.csdn.net/u/20081016/21/436b2d9f-d3bc-4f64-ab88-b16a25233bb8.html
红男爵 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 spiniper 的回复:]
说实在的,不是很好调试,你开发一个C程序入口,模拟调试吧。
[/Quote]

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,才来问问大家以前可有办法直接调试啊。
能省时间就省了,时间就是生命。

没有现成方法,那只能自己解决去了。
liky5387 2008-10-17
  • 打赏
  • 举报
回复
你都用Elipse了,怎么还用CMD来起动你的程序呢?那不是等了脱了裤子放屁吗?直接用Elipse来起动就可以了.

对于你要高度的问题,你可以用CPPUNIT.也可以在VC中写一个MAIN函数来调试,干嘛要整得那么复杂呢?



树成 2008-10-17
  • 打赏
  • 举报
回复
说实在的,不是很好调试,你开发一个C程序入口,模拟调试吧。
红男爵 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huoyin 的回复:]
http://blog.csdn.net/xxben/archive/2007/12/16/1941419.aspx

没有试过,仅供参考。
[/Quote]

谢谢提供参考,终于可以正常调试了,更喜欢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一起运行。
有点意思。

再次谢谢各位。
lovegenii 2008-10-17
  • 打赏
  • 举报
回复
传智播客_Java培训教程_JNI
这里面讲的很细了,你可以直接弄明白一切的.
huoyin 2008-10-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/xxben/archive/2007/12/16/1941419.aspx

没有试过,仅供参考。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧