在Java中调用C++
在java中调用自己的c++代码是一件简单的事情,以下类为例:
class Prompt {
private native String getLine(String prompt);
public static void main(String args[]) {
Prompt p = new Prompt();
String input = p.getLine("Type a line: ");
System.out.println("User typed: " + input);
}
static {
System.loadLibrary("MyImpOfPrompt");
}
}
我们希望在Prompt类中可以调用c++下的getLine函数,第一步就是先编译该java文件:
javac Prompt.java
此时应该已经生成了Prompt.class文件,然后使用命令:
javah -jni Prompt
即可生成相应的.h文件,其内容为:
JNIEXPORT jstring JNICALL
Java_Prompt_getLine(JNIEnv *, jobject, jstring);
事实上Java调用c++只需要满足一个接口命名规范即可,而javah -jni命令则为快速生成接口提供了方便。
最后,记得将你的c++代码编译为libMyImpOfPrompt.so
更详细的规范及操作可以参见
http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/index.html
相关文档:
keytool -genkey -dname "CN=demo, OU=softDept, O=company,
L=puddong,S=shanghai, C=cn" -alias demo -keyalg RSA -keysize 1024
-keystore demoKeystore -validity 3650 -storepass storePwd -keypass
demoPwd
生成保存公钥和私钥的密钥仓库,保存在demoKeystore文件中。这里storepass ......
Java字符串使用总结
前言:
这篇文章的目的是提醒大家对字符串三种类型做个综合的比较,使得在使用字符串三种类的时候有个选择依据,这样可以极大提高程序运行的效率。如果你对这 ......
1. JVM内存段分配及启动参数:
J2EE服务器的内存组成:
? Java堆:我们的程序和对象都在这个堆进行管理
? C堆:当引用到一些Native的对象,如网络访问、OCI方式的数据库连接等都在C堆里进行管理
Java堆的描述:
如下图
内存由 Perm 和 Heap 组成. 其中
Heap = {Old + young = { Eden , from, to } }
? You ......
/**
* @param source: source image file
* @param output: output image file
* @param mode: 0 ratio,1 maxWidth,2 maxHeight,3 maxSide
* @param maxSide: maxWidth, maxHeight or maxSide, different by mode
* @param ratio: ratio if resized by ratio
*/
public static void resizeImage(File ......
个 人 简 历
姓 名:
王志国
性 别:
男
年 龄:
23岁
联系电话:
13124799190
专 业:
计算机技术
工作时间:
一年以上
学 历:
大专
邮 箱:
andy478168@yeah.net
★ 求职意向
工作性质 ......