参考资料
http://www.iteye.com/topic/356188
http://www.iteye.com/topic/459005
http://www.iteye.com/topic/304594
http://www.iteye.com/topic/295776
Step1: 建立Java代码 注意这里是不带包名, 带包名的话, 使用javah会有些不同
public class Demo {
static
{
System.loadLibrary("demo");
}
public native static int add(int a,int b);
public static void main(String[] args) {
System.out.println(add(7,2));
}
}
Step2:用命令行的方式编译并生成头文件 Demo.h
javac Demo.java
javah Demo
Step3: 在VS2008中新建Demo的DLL项目, 将Demo.h拷贝到Header Files下, 注意: 需要同时拷贝到项目和文件目录下。
Step4: 准备VS2008环境, 将JDK下include的h文件放到
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include
不然会编译报错。
Step5: 编辑cpp文件
int add(int a,int b){
return a+b;
}
JNIEXPORT jint JNICALL Java_Demo_add
(JNIEnv *env,jclass jobject,jint a,jint b){
return add(a,b);
}
这里的 Java_Demo_add 和 Demo.h中的一致
Step6: 生成dll文件,拷贝到java目录下, 运行java Demo. 只能用命令行的方式运行, 不能用eclipse来玩。
大功告成
但是这里传递的只是int, 能否传递集合,或是自定义的Bean呢?
分享到:
相关推荐
以下是一个完整的示例,展示了如何实现Java调用C的过程: 1. **编写带有native声明的方法的Java类** ```java public class JNI_Test { // 传入一个String类型的字符串并将字符串转化为char类型的字符串后在后台...
当Java调用C语言DLL时,可能需要与数据库进行交互,这就需要理解如何在Java中操作数据库,比如使用JDBC API。 总之,通过JNI,Java开发者可以充分利用已有的C/C++代码库,提高性能或解决特定平台的问题。同时,了解...
总的来说,Java调用C语言编写的本地库需要理解JNI和JNA的工作原理,以及它们如何处理数据类型转换、参数传递和本地库的加载。通过这些技术,开发者可以充分利用C/C++的性能优势,同时享受Java的平台独立性和高级抽象...
java调用C语言动态链接库
在Java编程环境中,有时我们需要利用C语言编写的高效或特定功能的库,这时可以借助Java Native Interface (JNI) 来实现Java调用C的动态链接库。以下将详细讲解这一技术。 1. Java Native Interface (JNI) JNI是...
### HU-unix 下 Java 调用 C 语言动态链接库详解 ...通过以上步骤,可以有效地解决在HP-UX下使用Java调用C语言动态链接库的问题。如果仍然遇到问题,建议仔细检查每个步骤的细节,并参考相关文档或社区资源进行调试。
java调用c、c++,运用java.librarys("*.dll")文件,实现java调用c/c++
#### 三、Java调用C语言的基本步骤 1. **定义Native Method** 在Java类中声明native方法,这些方法实际上是在本地代码中实现的。 ```java public class TestDLL { static { System.loadLibrary("goodluck"); }...
在这个"JNI,java调用c Demo"中,我们将探讨如何设置和使用JNI来让Java程序调用C代码。 首先,我们需要理解JNI的工作原理。JNI提供了一种接口,使得Java虚拟机(JVM)能够调用本地(native)代码,也就是非Java的...
Java调用C源程序是通过Java Native Interface (JNI)实现的,这是一种允许Java代码和其他语言写的代码进行交互的标准机制。JNI在Java平台中扮演着重要角色,尤其在需要利用C或C++库、硬件接口或者优化性能的场景下。...
HU-unix下面Java调用C语言动态链接库 HU-unix下面Java调用C语言动态链接库是指在HU-unix平台下使用Java Native Interface(JNI)调用C语言动态链接库的过程。下面是相关的知识点: 一、Java Native Interface(JNI...
6. **测试Java调用C函数** 在Java程序中,现在可以通过`callCFunction`调用C代码: ```java public class Main { public static void main(String[] args) { NativeDemo demo = new NativeDemo(); demo....
### Java调用C/C++全过程详解 #### 一、引言 随着软件开发技术的不断发展,跨平台的应用程序越来越受到开发者的青睐。Java作为一种典型的跨平台编程语言,因其一次编写到处运行的特点而广受欢迎。然而,Java作为一...
Java调用C INI接口实例,以及通过Java调用C DLL是跨语言编程中的常见应用场景。这主要涉及到Java的JNI(Java Native Interface)技术,它允许Java代码与本地(操作系统级)代码进行交互,比如C/C++库。下面将详细...
jni学习资料,比较详细讲解了java调用c的方法。jni学习资料,比较详细讲解了java调用c的方法。jni学习资料,比较详细讲解了java调用c的方法。jni学习资料,比较详细讲解了java调用c的方法。jni学习资料,比较详细...
首先,Java调用C/C++程序的主要技术是通过Java Native Interface (JNI)。JNI是Java平台的一部分,允许Java代码和其他语言写的代码进行交互。它为Java程序员提供了一种方式来编写本地方法,这些本地方法可以调用由C/...
本实例主要讲解如何使用Swig来实现Java调用C代码,并通过DLL动态链接库进行交互。 首先,Swig是一个接口生成器,它读取源代码中的特定注释,然后生成必要的绑定代码,使得Java、Python、Perl等语言可以调用C或C++的...
这个"linux-java调用c语言编译的so动态库-jni例子-简单计算器"是一个典型的示例,展示了如何利用JNI来创建一个Java应用程序,该程序能够调用C编写的动态链接库(.so文件)进行计算操作。 JNI是Java平台的一部分,它...
jni学习资料之二,比较详细讲解了java调用c的方法。jni学习资料之二,比较详细讲解了java调用c的方法。jni学习资料之二,比较详细讲解了java调用c的方法。jni学习资料之二,比较详细讲解了java调用c的方法。jni学习...