`
xhdxhy
  • 浏览: 9115 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

浅谈JAVA调用C++动态链接库

阅读更多

第一步:编写Java代码,使用关键字native标记要用C++动态链接库来实现的方法。

如:      public native 返回类型 方法名(参数列表);

注意,这些方法没有方法体。。

程序中调用这里的方法和调用平常的方法的方式是一样的。

----------------------------------------------------------------------------------------------------------------------------------

第二步:编译该Java文件,得到.class文件,将.class文件和.java文件放在同一个文件夹下面

而后用javah命令生成一个C++头文件    Javah  类名        

注意,这里是类名,而不是文件名。。 

----------------------------------------------------------------------------------------------------------------------------------

第三步:基于以生成的头文件以C++语言编写C++代码。。

我C++用VS2005做的,新建一个C++ WIN32项目,选中DLL。。

在.cpp源文件中,添加上一步自动生成的头文件的引用。接着就实现函数,

先复制函数签名,在填写函数体就可以了。编译,生成DLL文件

注意:

由于编译时要用到一些Java里面的头文件,,所以应该把位于下面目录

C:\Program Files\Java\jdk1.5.0_09\include 

中的所有文件都拷到

C:\Program Files\Microsoft Visual Studio 8\VC\include

目录下。

上面两个路径依自己的机子而定

若不拷到这里的话,也可以明确指定路径。。

要不然会报错,说找不jni.h文件;

将生成的DLL文件放在 C:\WINDOWS\system32 目录下,或者放在与Java程序位于相同的目录下。

----------------------------------------------------------------------------------------------------------------------------------

第四步:在java代码中添加代码以载入本机库。

 static{
        System.loadLibrary("动态链接库的名字");
     }

 

 执行程序。

 ---------------------------------------------------------------------------------------------------------------------------------

分享到:
评论

相关推荐

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

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

    Java调用C++动态库

    本主题聚焦于“Java调用C++动态库”,这是一个关键的技术,它允许Java应用程序利用C++编写的高效库,比如图形处理、硬件驱动或者算法实现等。这种技术主要依赖于Java Native Interface (JNI),它是Java平台标准的一...

    C#调用C++动态链接库示例

    这种交互性是通过P/Invoke(Platform Invoke)技术实现的,允许C#代码调用C++动态链接库中的函数。本示例将深入探讨如何在C#中调用C++动态链接库,并讨论不同类型的参数传递。 首先,要理解C#和C++之间的互操作性...

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

    本教程将详细介绍如何在Java中调用C++动态库,并通过提供的`NativeDemo+java代码`进行实践。 首先,了解JNI。JNI是Java平台的标准接口,允许Java代码和其他语言写的代码进行交互。它提供了一种方式,使得Java程序员...

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

    5. **加载库**:在Java中,`System.loadLibrary()`会加载前面创建的动态链接库,使得Java能够调用C++实现的本地方法。 6. **测试和调试**:在Java程序中调用本地方法,验证C++代码是否正确工作。可能需要对JNI接口...

    java 调用C++ 动态库

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

    java调用c++生成so库

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

    深入浅出Visual_C++动态链接库(Dll)编程.pdf

    - **非MFC动态库**:这类DLL不依赖于MFC类库,导出的接口为标准C接口,可以被非MFC或MFC程序调用。 - **MFC规则DLL**:此类DLL包含一个继承自`CWinApp`的类,但没有消息循环机制。它主要用于提供与MFC应用程序相...

    JNA调用C++动态库,传入二维数组,通过C++返回二维数组,java调用C++完整案例

    本案例将详细介绍如何使用JNA来调用C++动态库,特别是处理二维数组的输入和输出。 首先,我们需要了解JNA的基本原理。JNA通过映射Java接口到本地函数,实现了跨语言调用。它提供了一个简洁的方式来定义C/C++函数...

    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++库,这些库...这个过程涉及到Java编程、JNI规范、C/C++编程以及操作系统层面的动态库加载知识。通过这个实例,开发者可以灵活地利用已有的C/C++库,增强Java应用的功能。

    c#调用c++ 动态链接库

    本文将详细探讨如何在C#中调用C++动态链接库。 ### 1. P/Invoke(平台调用) P/Invoke是.NET Framework提供的一种机制,允许C#代码调用非托管代码,如C++ DLL中的函数。通过定义一个具有适当参数和返回类型的C#...

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

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

    C#winform调用C++库案例,使用C++编写动态库,然后再用C#调用当前C++编写的动态库

    4. **调用C++函数**:现在你可以在C#代码中自由地调用C++函数了。在适当的地方,例如按钮的点击事件处理程序中,调用`Add`函数。 ```csharp private void button1_Click(object sender, EventArgs e) { int ...

    Java使用jni接口调用C++动态库.docx

    Java 使用 JNI 接口调用 C++ 动态库 Java 通过使用 JNI(Java Native Interface)接口可以调用 C++ 动态库,该技术可以大大扩展 Java 的能力,让 Java 应用程序可以与其他语言编写的程序进行交互。下面是 Java 使用...

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

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

    java调用C++ webservice

    在IT行业中,跨语言通信是常见的需求,尤其是在Java和C++这样...总之,Java调用C++ Web服务是一个涉及到多种技术栈的过程,包括WSDL解析、SOAP通信、跨语言数据映射等。理解这些概念并熟练应用是实现跨语言通信的关键。

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

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

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

    java调用C语言动态链接库

Global site tag (gtag.js) - Google Analytics