`
Tristan_S
  • 浏览: 366810 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 调用C

 
阅读更多
参考资料
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语言

    java调用c,总结了各种类型

    java调用C语言编写的so库中的函数,java调用C语言编写的dll库中的函数

    java调用so,java调用dll也是同样的代码

    java调用C语言动态链接库DLL/so

    java调用C语言动态链接库

    linux-java调用c语言编译的so动态库-jni例子-简单计算器

    这个"linux-java调用c语言编译的so动态库-jni例子-简单计算器"是一个典型的示例,展示了如何利用JNI来创建一个Java应用程序,该程序能够调用C编写的动态链接库(.so文件)进行计算操作。 JNI是Java平台的一部分,它...

    java调用C的动态链接库

    在Java编程环境中,有时我们需要利用C语言编写的高效或特定功能的库,这时可以借助Java Native Interface (JNI) 来实现Java调用C的动态链接库。以下将详细讲解这一技术。 1. Java Native Interface (JNI) JNI是...

    JAVA调用C语言写的dll的方法和实例

    当Java调用C语言DLL时,可能需要与数据库进行交互,这就需要理解如何在Java中操作数据库,比如使用JDBC API。 总之,通过JNI,Java开发者可以充分利用已有的C/C++代码库,提高性能或解决特定平台的问题。同时,了解...

    java调用c的经典例子

    java调用c、c++,运用java.librarys("*.dll")文件,实现java调用c/c++

    JNI,java调用c Demo

    在这个"JNI,java调用c Demo"中,我们将探讨如何设置和使用JNI来让Java程序调用C代码。 首先,我们需要理解JNI的工作原理。JNI提供了一种接口,使得Java虚拟机(JVM)能够调用本地(native)代码,也就是非Java的...

    java调用C源程序(JNI)

    Java调用C源程序是通过Java Native Interface (JNI)实现的,这是一种允许Java代码和其他语言写的代码进行交互的标准机制。JNI在Java平台中扮演着重要角色,尤其在需要利用C或C++库、硬件接口或者优化性能的场景下。...

    HU-unix下面java调用C语言动态链接库.pdf

    HU-unix下面Java调用C语言动态链接库 HU-unix下面Java调用C语言动态链接库是指在HU-unix平台下使用Java Native Interface(JNI)调用C语言动态链接库的过程。下面是相关的知识点: 一、Java Native Interface(JNI...

    java语言方法调用C语言函数

    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调用C/C++全过程 JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。  JAVA通过JNI调用本地...

    用java调用C或C++动态链接库 java调用dll

    Java 调用C或C++动态链接库(DLL)主要依赖于Java Native Interface (JNI) 技术。JNI 是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。以下是一个详细的步骤来说明如何使用JNI调用C或C++的动态链接...

    java调用c INI接口实例 调用c dll.rar

    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的方法。jni学习资料,比较详细...

    java调用c c++程序实例

    首先,Java调用C/C++程序的主要技术是通过Java Native Interface (JNI)。JNI是Java平台的一部分,允许Java代码和其他语言写的代码进行交互。它为Java程序员提供了一种方式来编写本地方法,这些本地方法可以调用由C/...

    swig实例java调用c

    本实例主要讲解如何使用Swig来实现Java调用C代码,并通过DLL动态链接库进行交互。 首先,Swig是一个接口生成器,它读取源代码中的特定注释,然后生成必要的绑定代码,使得Java、Python、Perl等语言可以调用C或C++的...

    jni学习资料之二,比较详细讲解了java调用c的方法。

    jni学习资料之二,比较详细讲解了java调用c的方法。jni学习资料之二,比较详细讲解了java调用c的方法。jni学习资料之二,比较详细讲解了java调用c的方法。jni学习资料之二,比较详细讲解了java调用c的方法。jni学习...

    JAVA调用C/C++ DLL文件方法

    JAVA调用C/C++ DLL文件方法 JAVA 调用 C/C++ 库文件(DLL)是 Java 语言与 C/C++ 语言之间的交互方式之一。在 Java 中,存在多种调用 C/C++ 库文件的方式,包括 JNI、JNative、Jawin 和 Jacob 等。其中,JNI(Java ...

    HU-unix下面java调用C语言动态链接库.docx

    HU-unix下面java调用C语言动态链接库.docx

Global site tag (gtag.js) - Google Analytics