`

Java 调用c++动态链接库

 
阅读更多

1.新建java代码 HelloWorld.java

 

class HelloWorld {

public native void displayHelloWorld();

 

static {

System.loadLibrary("hello");

}

 

public static void main(String[] args) {

new HelloWorld().displayHelloWorld();

}

}

 

2.javac HelloWorld.java

 

3.javah -jni HelloWorld 生成c++头文件HelloWorld.h

 

 

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class HelloWorld */

 

#ifndef _Included_HelloWorld

#define _Included_HelloWorld

#ifdef __cplusplus

extern "C" {

#endif

/*

 * Class:     HelloWorld

 * Method:    displayHelloWorld

 * Signature: ()V

 */

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld

  (JNIEnv *, jobject);

 

#ifdef __cplusplus

}

#endif

#endif

 

 

4.实现c++头文件 HelloWorld.h的头文件 HelloWorld.cpp

 

#include "HelloWorld.h"

#include <iostream>

using namespace std;

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld

  (JNIEnv *, jobject){

 

printf("this is my jni hello,world\n");

 

cout<<"hello,world!"<<endl;

 

 }

 

5.编译生成hello.dll动态库

工具-->选项-->source control-->include files 将jdk-->include下的头文件和win32的头文件包含进去

 

6.运行java HelloWorld 

 

参考链接http://www.blogjava.net/shiliqiang/articles/287920.html

 

 

 

 

 
0
3
分享到:
评论

相关推荐

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

    本项目涉及的"java调用C++动态链接库dll接口"是解决这种跨语言交互问题的一种方法,主要利用了Java Native Interface(JNA)这一技术。 JNA是Java平台的标准库,它允许Java代码直接调用本机库(如DLL或.so文件)的...

    myEclipse java调用c++动态链接库实现人脸识别所有工程

    这个项目"myEclipse java调用c++动态链接库实现人脸识别所有工程"正是这种需求的一个实例,它利用了Java的JNI(Java Native Interface)技术来调用C++编译的动态链接库(DLL),从而实现人脸识别功能。以下将详细...

    java调用c++动态链接库输出

    3. 调用C++动态链接库的两种方式: - **JNI(Java Native Interface)**:JNI是一种直接在Java代码中嵌入C/C++代码的方式。首先,你需要在Java类中声明`native`关键字修饰的方法,然后使用`javah`工具生成C/C++...

    Java调用C++动态库

    通过JNI,Java可以创建C++动态链接库(DLL)的实例,并调用其中的方法。这个过程涉及以下几个步骤: 1. **编写JNI头文件**:使用`javah`工具,根据Java中的native方法声明生成对应的C/C++头文件。这个头文件定义了...

    java调用C++编写的动态库dll

    在Java编程环境中,有时我们需要利用C++编写的高性能或特定功能的库,这时可以借助Java的JNI(Java Native Interface)技术来调用C++编写的动态链接库(DLL)。本教程将详细介绍如何在Java中调用C++动态库,并通过...

    JNI调用C++动态链接库入门

    ### JNI调用C++动态链接库入门:详细解析与实践指南 #### 一、引言 ...通过以上步骤,你已经完成了使用JNI调用C++动态链接库的全过程,这不仅加深了你对JNI的理解,也为今后开发高性能的Java应用奠定了基础。

    C++库封装JNI接口-实现java调用c++

    总结,C++库封装JNI接口实现Java调用C++涉及的主要步骤包括:声明Java中的本地方法,生成JNI头文件,编写C++实现,编译成库,最后在Java中加载并调用。这个过程需要理解Java和C++之间的数据类型转换,以及如何在两种...

    java 调用C++ 动态库

    总结来说,Java调用C++动态库是一个涉及多步骤的过程,包括生成JNI头文件、编写C++代码、编译动态库、加载库并在Java中调用本地方法。这个过程中需要考虑线程安全、数据类型转换以及异常处理等问题,以确保程序的...

    java调用c++生成so库

    标题“java调用c++生成so库”指的是在Linux环境下,通过JNI技术,Java程序可以调用预先用C++编译生成的动态链接库(.so文件)。.so文件是Linux下的动态共享对象,相当于Windows下的.DLL文件,它包含了可由多个程序...

    java使用JNI调用C++动态链接库(初学必备)

    Java 使用 JNI(Java Native Interface)调用 C++动态链接库是一种常见的技术,它允许 Java 代码与本地 C 或 C++代码交互,以利用 C++的高性能特性或利用已有的 C++库。以下是对标题和描述中涉及的知识点的详细解释...

    如何使用JNA调用本地C/C++动态链接库详细示例代码

    详细演示了如何通过JNA实现以下形式的动态链接库接口: 1:基本数据类型 2:基本数据类型的指针和引用 3:结构体 4:结构体的指针和引用 ...C++动态链接库; VC调用本地动态链接库; JNA调用本地动态链接库;

    java调用动态链接库实例 java调用动态链接库实例 java调用动态链接库实例

    在Java编程中,有时我们需要利用已有的C或C++库,这些库通常以动态链接库(Dynamic Link Library, DLL在Windows上,Shared Object, SO在Linux上)的形式存在。Java本身并不直接支持调用原生代码,但它通过Java ...

    Java调用动态链接库(Java 调用 DLL)

    Java调用动态链接库(DLL)是Java编程中一个比较特殊的技术,主要涉及到Java与本地代码的交互。在Windows系统中,DLL(Dynamic Link Library)是实现函数复用的一种方式,它包含了一系列可供其他程序调用的函数或数据...

    利用JNI实现Java调用C++库

    利用JNI技术实现Java中调用C++编写的函数库示例程序源码,并附上参考JNI文档。 详情见本人博客:Java学习之通过JNI调用C/C++编写的dll链接库(图文教程)(http://write.blog.csdn.net/postlist)

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

    java调用C语言动态链接库

    非常好用java调用c++ dll文件demo

    Java调用C++ DLL文件是跨语言编程中的一个重要应用场景,特别是在既有Java代码库又有C++动态链接库的情况下。本文将详细讲解如何在Java程序中调用C++编写的DLL文件,以及一个可用的示例。 首先,理解Java与C++交互...

    Java通过JNI调用C++动态链接库(第三方库)实现全过程Demo

    Java通过JNI调用C++动态链接库(第三方库)实现全过程Demo 1、创建c++动态链接库,实现一些功能的封装,例如扫描设备,作为第三方库来使用 2、创建c++中间件(本质也是DLL),用来调用和进一步的封装第三方库,添加...

    Java调用c++类对象

    Java调用C++类对象是一种跨语言交互技术,主要用于利用Java的平台独立性和C++的高性能。这种技术通常依赖于Java Native Interface (JNI),它允许Java代码直接调用本地(如C++)代码,反之亦然。下面我们将深入探讨...

    Java(JDK17)通过JNI实现调用C++动态链接库

    Java(JDK17)通过JNI实现调用C++动态链接库- CMake模块化项目管理

Global site tag (gtag.js) - Google Analytics