ubuntu下,C/C++通过JNI调用 JAVA类
之前写过一个实现了某种功能的java程序,但由于近日“工作”需要,又需要在c/c++中重新使用该功能。为了节省时间,我采取了在c/c++中调用java程序的方法,但之前没有接触过类似的东西,到网上一查,果然有类似的东西,心中暗喜ing...。查到的资料中有几个不错的网页:
http://blog.sina.com.cn/s/blog_48eef8410100fjxr.html
http://www.diybl.com/course/6_system/linux/Linuxjs/20100331/201638.html
http://hi.baidu.com/pjdashu/blog/item/5e54df9961040d006e068c1b.html
第一个网址,主要介绍了安装java环境和编译过程;
第二个网址,主要介绍了jni的使用方法。
第三个网址,最后的代码比较明确的说明了如何使用里面的字符串,可以直接看最后一段的代码。
我按照第一个网址的方法进行实验,发现了好多的问题。先把主要应该注意的地方记录如下:
我使用的环境是:Ubuntu8.04
安装配置Java环境以及编译
安装java环境时,我参照了 http://wiki.ubuntu.org.cn/Java安装配置
的安装配置方法,安装的是java6。下面的配置路径可能根据系统的不同,略有不同。在ubuntu下默认是安装到了/usr/lib/jvm下。
然而,此处的说法:“
要使配置生效必须重启机器或者在命令行输入
”并不完全正确,最起码对于LD_LIBRARY_PATH来说不正确,因为有资料显示:
貌似 Ubuntu 不能在 profile, environment,.bashrc中设置 LD_LIBRARY_PATH,
可以这样解决库装载问题:
编辑 /etc/ld.so.conf 文件,将指定的路径加上,或者在 /etc/ld.so.conf.d/
目录中添加一个新的配置文件,内容看一下该目录下其它文件就明白了。。。当然你得有权限这么做。(http://forum.ubuntu.org.cn/viewtopic.php?f=56&t=94830
)
我的做法
要么每次使用之前,要么先运行“. /etc/environment”,要么“export LD_LIBRARY_PATH=
$JRE_HOME/lib/i386/client”
配置过程中我还参照了第一个网址中的内容:
JAVA_HOME=/usr/local/java/jdk1.5.0_06
PATH=$PATH:/usr/local/java/jre1.5.0_05/bin
export JAVA_HOME PATH
export
JRE_HOME=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
exp
相关文档:
使用 gperf 实现高效的 C/C++ 命令行处理
GNU 完美(gperf)散列函数生成器简化复杂的输入字符串
文档选项
级别: 中级
Arpan Sen
(arpan@syncad.com
), 技术主管, Synapti Computer Aided Design Pvt Ltd
2007 年 9 月 10 日
GNU 的 gperf 工具是一种 “完美的” 散列函数,可以为用户提供的一组特 ......
1. 在C语言中内嵌汇编
在C中内嵌的汇编指令包含大部分的ARM和Thumb指令,不过其使用与汇编文件中的指令有些不同,存在一些限制,主要有下面几个方面:
a. 不能直接向PC寄存器赋值,程序跳转要使用B或者BL指令
b. 在使用物理寄存器时,不要使用过于复杂的C表达式,避免物理寄存器冲突
c. R12和R13可能被编译 ......
C专家编程 精编之一 第一章~第三章
C的复杂之处 在于它的指针 ,但是比其指针更为复杂的是它的声明 !!!
你能看懂它们的意思 吗?
apple=sizeof(int)*p ; apple=sizeof * p;
j= (char (*)[20])malloc(20);
int const * grape; 与 int * const gr ......
文章来源:http://dev.yesky.com/468/7601968.shtml
2007-10-12 11:01作者:宋宝华出处:天极网软件频道责任编辑:方舟
1.Linux文件系统
Linux支持多种文件系统,如ext、ext2、minix、iso9660、msdos、fat、vfat、nfs等。在这些具体文件系统的上层,Linux提供了虚拟文件系统(VFS)来统一它们的行为,虚拟文件系统为 ......
在这儿下载:color-theme
:
http://download.savannah.gnu.org/releases-noredirect/color-theme/
wget http://download.savannah.gnu.org/releases-noredirect/color-theme/color-theme-6.6.0.tar.gz
tar zxf color-theme-6.6.0.tar.gz -C ~/.emacs.d
在.emacs中加入下列语句:
;; corlor-theme ......