论坛首页 Java企业应用论坛

Java JNI 编程进阶

浏览 56433 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-12-25  
xieke 写道
wangdi 写道
xieke 写道
如果用vc 编译动态库 实现 jni 就失去跨平台特性了,
我是用 mingw +cdt 或者  mingw+netbeans 编译 动态库,
这样可以做到一套c代码,windows linux下都能跑,
但是linux下动态库是so文件,windows下是 dll文件,所以算是半个跨平台把.

那你怎么编译的呢?
不是vc或者其他东东编译dll然后gcc编译so?


安装 mingw 后,即可在windows下用 gcc 直接编译 dll,
也就是说,只需要在 makefile 中把 .so后缀改为 .dll后缀就行了.

受教咯,,回去好好看看。。
0 请登录后投票
   发表时间:2009-02-02  
RyanPoy 写道
jni的效率没有那么高。
jni对内存的开辟有限制。

可以对JVM参数调整,指定 -Xss 指定的本机堆栈
0 请登录后投票
   发表时间:2009-02-02  
pangyi 写道
JNI最大的缺点是多线程方面的应用支持不够。

内存泄露也是个很让人头疼的问题。


内存泄漏主要是靠c++程序员来处理了

其实JNI最大的问题是一旦C++发生空指针异常,JVM是直接崩溃掉 ,这个问题比较严重
0 请登录后投票
   发表时间:2009-02-04  
use swig...it may help a lot for writing wrappers.
0 请登录后投票
   发表时间:2009-07-06  
danlley 写道
最后一个例子应该是针对数组的操作,楼上的楼上可以参考一下哦!




LZ还是比较牛的,以前是有这样的思路:采用java面向对象的方式进行快速开发,之后编译成C++进行运行,可以提升系统响应速度。大概现在明白了java嵌入式开发的应用,觉的这个也是JAVA能风生运气的原因吧。 拜读了~~~
0 请登录后投票
   发表时间:2009-07-19  
不错,记得一个操作注册表的jar就是用到外部dll的
0 请登录后投票
   发表时间:2009-07-19  
RyanPoy 写道
jni的效率没有那么高。
jni对内存的开辟有限制。



看看swt跟swing的对比~
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics