`
Tristan_S
  • 浏览: 378619 次
  • 性别: 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的过程: 1. **编写带有native声明的方法的Java类** ```java public class JNI_Test { // 传入一个String类型的字符串并将字符串转化为char类型的字符串后在后台...

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

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

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

    总的来说,Java调用C语言编写的本地库需要理解JNI和JNA的工作原理,以及它们如何处理数据类型转换、参数传递和本地库的加载。通过这些技术,开发者可以充分利用C/C++的性能优势,同时享受Java的平台独立性和高级抽象...

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

    java调用C语言动态链接库

    java调用C的动态链接库

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

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

    ### HU-unix 下 Java 调用 C 语言动态链接库详解 ...通过以上步骤,可以有效地解决在HP-UX下使用Java调用C语言动态链接库的问题。如果仍然遇到问题,建议仔细检查每个步骤的细节,并参考相关文档或社区资源进行调试。

    java调用c的经典例子

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

    java怎么调用C语言

    #### 三、Java调用C语言的基本步骤 1. **定义Native Method** 在Java类中声明native方法,这些方法实际上是在本地代码中实现的。 ```java public class TestDLL { static { System.loadLibrary("goodluck"); }...

    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作为一...

    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++的...

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

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

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

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

Global site tag (gtag.js) - Google Analytics