
正文
c调用java代码参数,java调用c的dll
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在C++和java之间互相调用
1、具体调用步骤如下:首先创建Java文件 HelloJni.java ,并创建native方法。编译Java文件并生成java头文件。创建C语言文件,HelloWorld.c。生成动态链接库文件 libhello.so。设置动态链接库文件的目录。
2、java 调用C++编写的dll,可使用JNI 或 Jawin 开源项目(推荐第二种方法)。C++ 调用java 的变量、方法,通过JNI (Java Native Interface)与java类交互。
3、要在java中调用c语言的库,需要使用Java提供了JNI。
相关问答
Q1: JAVA如何调用C函数
1、可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。
2、具体调用步骤如下:首先创建Java文件 HelloJni.java ,并创建native方法。编译Java文件并生成java头文件。创建C语言文件,HelloWorld.c。生成动态链接库文件 libhello.so。设置动态链接库文件的目录。
3、(1)创建DLL文件使用某一种C/C++开发工具创建DLL文件,实现某一功能,供Java调用,例如本文在此使用Visual studio 2005创建一个名为testdll的动态库文件。(2)使用JNIJNI是Java Na***tive Interface的缩写,中文为Java本地调用。
4、对于已生成的.h头文件,C/C++所需要做的,就是把它的各个方法具体的实现。然后编译连接成库文件即可。再把库文件拷贝到JAVA程序的路径下面,就可以用JAVA调用C/C++所实现的功能了。接上例子。
5、import java.io.*;class C { public static void main(String[] args) throws Exception { final Process proc = Runtime.getRuntime().exec(adder.exe);// 用另一个线程把参数送到 proc 的标准输入上去。
6、你选择用汇编或者c语言来实现并在java语言中调用他们 下面我们开始编写HelloWorld程序,由于涉及到要编写c/c++代码因此我们会在开发中使用Microsoft VC++工具。
Q2: 如何从C中调用Java函数使用JNI
C语言调用Java,还有Java调用C,都使用到JNI技术,C语言调用需要创建Java虚拟机,可查看函数JNI_CreateJavaVM、DestroyJavaVM的资料,函数声明在jni.h头文件(JDK)中。
JNIEnv类型代表Java环境。通过这个JNIEnv*指针,就可以对Java端的代码进行操作。如,创建Java类得对象,调用Java对象的方法,获取Java对象的属性等。
JNI允许您从本机代码内调用 Java 类方法。要做到这一点,通常必须使用 Invocation API 在本机代码内创建和初始化一个 JVM。
Q3: java调用c语言编写的可执行文件
要在java中调用c语言的库,需要使用Java提供了JNI。
可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。
用 Runtime 的 exec 方法的确是可行的。
Q4: 如何在C/C++中调用Java
JNIEnv类型代表Java环境。通过这个JNIEnv*指针,就可以对Java端的代码进行操作。如,创建Java类得对象,调用Java对象的方法,获取Java对象的属性等。
C语言调用需要创建Java虚拟机,可查看函数JNI_CreateJavaVM、DestroyJavaVM的资料,函数声明在jni.h头文件(JDK)中。需注意参数类型转换,两种语言的参数类型和传递有讲究,有多个返回的话,必须传递对象参数进行处理。
据我所知,并不能在C/C++中调用JAVA,这是两门语言,C++只是因为与C关系密切 所以才可以使用C的一些东西,但是和JAVA的差别就太大了,类,继承,虚继承,接口,派生类等等...都不一样,所以说 换个思路吧。
如果命令行可以解决的问题,都不算问题。比如你可以在c语言中调用system(java -jar xxx.jar)当然,这种方法很坑爹。需要用文件或者网络来实现数据的传输和交换的介质。
关于c调用java代码参数和java调用c的dll的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







