关于使用JAVA调用c 或者c++的DLL的吐槽
来源:互联网 发布:ansys cfd软件 编辑:程序博客网 时间:2024/04/28 03:03
关于使用JAVA调用c 或者c++的DLL的问题不是什么新鲜的话题,但是今天我还是吐槽一下,因为我也像各位前辈一样,你们被坑了,我也被坑了,很简单的转换花了我一天的时间,各种百度,感觉真是费了很大的劲才最终搞定! 吐槽是为了给自己的一个纪念,有一天也发现自己曾经被坑了,吐槽是为了给后人的一些参考,因为你们也有可能会被坑!
首先关于这个问题,百度一下,能有很多很多的资料,而且大部分网友也是非常职业的,被坑了以后,把自己的步骤一步一步写的非常清楚,而且还分析了问题。
所以这里我就不进行详细介绍了,给他们的链接,这几个链接我觉得不错,
http://blog.csdn.net/origin100/article/details/7305222
http://www.cnblogs.com/xiehy/p/3365682.html
http://blog.csdn.net/lcl_data/article/details/6913922
以上这几篇文章写得很好,至少对你解决这个问题会有很大的帮助!
下面就简单讲一讲我遇到的问题
第一个问题
使用javah生成头文件 这个比较无语,稍不留神就报错,找不到类 这里提供一种方法 加入你的包是 com.bbb , 这里bbb是你的类,它存放在com的目录下,那么你可以到com的上一层使用javah命令,
即 javah com.bbb,就能够生成该头文件了,其他网上的方法我都尝试了,都不太行得通,当然了,即使你跟我一样做了,你也不一定能够行的通,那么还有另一种更加稳妥的方法,那就是讲整个com文件夹复制到jdk的bin文件夹下面,然后用cmd命令执行 javah com.bbb,这种应该没问题了,其实它的原因主要是跟你安装JAVA的时候的环境变量设置有关系
第二个问题
生成好了,没找到方法,我犯了一个错误,如下所示
一般来说 生成的头文件应该是这样JNIEXPORT jint JNICALL Java_java_13_Addlib_dll_1add(JNIEnv *, jobject, jint a, jint b)
前两个参数是默认就有的,如果你不需要,不要去动它,否则就会遇到我这个问题,比较傻,但是时间确实就是这么消耗掉了
- 关于使用JAVA调用c 或者c++的DLL的吐槽
- C# 调用C++或者C的DLL
- 0072 JAVA JNI 如何调用C或者C++生成的dll【基础】
- 使用 JNI 调用 c 的 DLL
- java调用C/C++写的dll
- java调用C的dll 【转】
- java调用(c+opencv)的DLL
- java 调用C写的DLL
- JAVA JNI调用C编写的dll
- java调用c、c++的dll
- JAVA调用C++/C#的DLL
- Java调用C/C++代码-生成java调用的DLL
- JAVA调用C语言的dll库(使用Dev C++创建Dll)
- Chap5:使用JNI技术实现java程序调用第三方dll(c/c++)文件的功能
- 使用JNI技术实现java程序调用第三方dll(c/c++)文件的功能
- C#调用C的DLL
- Qt调用C的DLL
- delphi调用c的dll
- 部署自己的私有 DOCKER REGISTRY---经验证可行
- nginx反向代理配置
- 验证控件插图扩展控件ValidatorCalloutExtender(用于扩展验证控件)和TextBoxWatermarkExtender
- 运行时异常与一般异常的区别(转载)
- java使用jxl解析Excel
- 关于使用JAVA调用c 或者c++的DLL的吐槽
- 中文数字版atoi【Java实现】
- NYOJ 613 免费馅饼
- 音频播放 AVAudioPlayer
- Ajax,谷歌提示AutoCompleteExtender控件
- 翻转句子中单词的顺序
- 清除chrome的host DNS缓存
- Android 实现QQ第三方登录
- PAT(A)1084. Broken Keyboard