pjni(pjnic)

http://www.itjxue.com  2024-06-17 04:05  来源:IT教学网  点击次数: 

如何在C/C++中调用Java

1、c可以调用命令行,当然就能调用java。但是如果想和java对象直接交互,基本不可能。

2、JNIEnv类型代表Java环境。通过这个JNIEnv*指针,就可以对Java端的代码进行操作。如,创建Java类得对象,调用Java对象的方法,获取Java对象的属性等。

3、C语言调用Java,还有Java调用C,都使用到JNI技术,C语言调用需要创建Java虚拟机,可查看函数JNI_CreateJavaVM、DestroyJavaVM的资料,函数声明在jni.h头文件(JDK)中。需注意参数类型转换,两种语言的参数类型和传递有讲究,有多个返回的话,必须传递对象参数进行处理。

4、如果存在这c:j2sdk2_09jre作为jre路径.如果不存在调用GetPublicJREHome查HKEY_LOCAL_MACHINESoftwareJavaSoftJava Runtime Environment“当前JRE版本号”JavaHome的路径为jre路径。

5、我们知道java中的String,c语言中应该对应的是char*类型,也就是说我们在jni的c语言实现中如何把jstring类型转换成为char*即可。

Java进阶:Java通过JNI与Delphi交互

你可以用delphi来和设备通讯(一般是COM口),用JNI传递结果给java,或者用数据库做中介也可以。

java不可以直接使用ocx的,可以通过jni进行二次包装。

直接是不行的! linux里面没有dll。不过看你的需求应该是java调用了其他程序别写的功能,在linux里面肯定可以!Linux也有动态链接库的概念,不过叫Share Object ,你编译一个.so的文件,然后还是使用JNI调用。

第一,jni方式调用c接口。通过将c语言接口封装为jni的方式直接供java语言调用,这个可以说是最惯用的方式。第二,jna方式调用c接口。jna也是其中一种调用c接口的方式。使用时可以加载动态库.dll或.so,然后调用库中的接口。

……别,C++那个结构体中string都出来了。基本上是不用指望其他语言可以调用了。

请教JNI编程中C调用Java实现中NullPointerException问题

java 调用C++编写的dll,可使用JNI 或 Jawin 开源项目(推荐第二种方法)。C++ 调用java 的变量、方法,通过JNI (Java Native Interface)与java类交互。

第一行给出了是异常的原因,NullPointerException,这相当于c和c++里的空指针,所以必须处理,否则程序运行时会出错。接下来的几行给出了出错的程序调用,指出了Main.java的11行出现java.lang.NullPointerException异常,但是具体的原因还得从调用的代码上去查找,这里是Main.java的第7行传递了null导致的。

字符串变量未初始化;接口类型的对象没有用具体的类初始化,比如:List lt;会报错 List lt = new ArrayList();则不会报错了 当一个对象的值为空时,你没有判断为空的情况。

public class Example { public static void main(String[] args) { String str = null;System.out.println(str.length();} } 在这个例子中,变量str被赋值为null,然后在下一行代码中试图调用其length()方法,这会导致java.lang.nullpointerexception异常。

(责任编辑:IT教学网)

更多

相关新手入门文章

推荐新手入门文章