Java调用C/C++ – JNI
昨天才看到,但是遇到一些问题,今天解决了,记下……(参考:http://netbeans.org/kb/55/beginning-jni-part1.html)
我用的是Netbeans 6.7,但是和其他的也应该大同小异吧。 基本流程: Java这边的:
创建java文件(带native的),还要记得在类中加入:System.loadLibrary(xxx) 。
然后用javah来生成C/C++的头文件(比如:javah –o pzc.h –jni –classpath … pzjava.Main)。 C这边的:
做一个“中间层”的C或者C++文件,include刚才生成的头文件,把方法复制下来。
还要记得把%JAVA_HOME%\include\和%JAVA_HOME%\include\win32添加到编译器的头文件搜索路径中(还要添加上刚刚生成的头文件的搜索路径) 。
要注意设置好编译器输出的动态库文件名,要和loadLibrary中的一致(在Windows下如果xxx是"pzc”,那输出的就是pzc.dll,如果是linux,就是libpzc.so)。
还要注意设置编译器的其他参数,如:--add-stdcall-alias(在Windows下需要)(查看gcc手册就知道它的意思)。
编译好dll后把dll复制到java项目空间就行了。 有时gcc选项还要加-m32,按照原文所说的,意思应该是,如果是在64位的机器上想要把dll编译成32位的话,那就要加上这个选项。
相关文档:
1.了解Java的原理:
首先要了解整个Java的大致结构、工作环境、历史。在这个过程中要搞明白Java从源代码到最后虚拟机里面执行的一个过程是怎样的。
2.学习Java语法:
Java里面只有50多个关键字和一些运算符。语法结构就只有顺序、条件、循环 ......
repaint 对组件进行重绘,比如一个panel,当你remove掉panel里面的一个组件时,你必须调用repaint方法才能对panel进行重绘,进行刷新,你想要删除的组件才能在界面上消失。
revalidate 对组件进行验证,比如一个panel,当你remove掉panel里面的一个组件时,当你调用revalidate方法后,panel的布 ......
本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。
一、static
请先看下面这段程序:
public class Hello{
public static void main(String[] args){ ......
import java.net.URL;
import java.net.URLDecoder;
public class PathUtil
{
/**
* Get the env of windir, such as "C:\WINDOWS".
* @return the env of windir value.
*/
public static String getWindir(){
return System.getenv("windir");
}
......
先贴代码吧
感谢:http://xranming.blog.163.com/blog/static/24204952009914104148872/
http://www.diybl.com/course/3_program/java/javajs/20090303/157541.html
1、java代码:
主要采用dom来进行操作
java对xml操作有四种方法:http://passmatlab.bokee.com/3455905.html
package test;
import java ......