`

Java 加载动态链接库

阅读更多
Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。
 
 可以将native方法比作Java程序同C程序的接口,其实现步骤:

  1、在Java中声明native()方法,然后编译;

  2、用javah产生一个.h文件;

  3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);

  4、将第三步的.cpp文件编译成动态链接库文件;

  5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。


例子:
public class VadChecker {

static {
System.loadLibrary("vadLib");
}

//other code here

// 动态链接库用到的函数需要declar
public static native int  native_initialize();
public static native void native_uninitialize(int handle);
public static native void native_reset(int handle);
public static native int  native_appendData(int handle, byte[] pData, int len, VadData vad);
public static native int  native_setParam(int handle, int paramID, int paramValue);

}

在这个项目的Libs 目录下有一个文件.so 文件 -》 libs/armeabi/libvadLib.so

分享到:
评论

相关推荐

    java程序中加载动态链接库文件

    ### Java程序中加载动态链接库文件 #### 一、引言 在开发Java应用程序时,有时需要调用一些底层硬件接口或执行特定平台的操作,这些功能通常无法仅通过纯Java代码实现。这时,就需要借助于Java Native Interface ...

    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)是实现函数复用的一种方式,它包含了一系列可供其他程序调用的函数或数据...

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

    3. 加载库:在Java代码中,使用`Native.load`方法加载C++动态链接库。确保指定正确的库名(通常是.dll文件的名称,不带扩展名)。 ```java NativeLibrary lib = (NativeLibrary) Native.load("your_dll_name", ...

    java控制twain设备需要的动态链接库文件

    java控制twain设备需要的动态链接库文件,文件名: jtwain.dll

    java调用动态链接库例程(测试通过)及库包 jna4.3

    然而,有时我们需要在Java程序中调用操作系统底层的函数,这通常是由动态链接库(DLL)提供的。Java Native Access (JNA) 是一个Java库,它允许Java代码直接调用本机库函数,无需编写JNI(Java Native Interface)...

    java调用C的动态链接库

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

    Java调用动态链接库通用方法.doc

    ### Java调用动态链接库通用方法 #### 一、概述 在现代软件开发过程中,不同编程语言间的相互调用十分常见。例如,在Java程序中调用C语言编写的动态链接库(Dynamic Link Library,简称DLL),能够充分利用底层...

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

    生成的文件包括`.dll`(动态链接库)和`.lib`(导入库),其中`.dll`文件将在运行时被Java程序加载,`.lib`文件用于编译Java的本地方法。 3. 调用C++动态链接库的两种方式: - **JNI(Java Native Interface)**:...

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

    HU-unix下面Java调用C语言动态链接库 HU-unix下面Java调用... Java程序可以使用System.loadLibrary()方法加载动态链接库,并需要设置LD_LIBRARY_PATH和java.library.path环境变量以便Java程序可以找到动态链接库。

    JNI--java调用不同平台的动态链接库,dll,so,完美,全教程

    因此,很少有 Java 程序员愿意编写调用 dll/.so 库中的原生函数的 java 程序。这也使 Java 语言在客户端上乏善可陈。可以说 JNI 是 Java 的一大弱点!现在,不需要再羡慕 .NET 的 P/Invoke 机制了。 JNA 把对 dll/....

    哈工大 LTP java动态链接库 64位可用

    最后,将编译好的C/C++代码与Java代码一起打包,使得Java程序在运行时能够找到并加载这些动态链接库。 标签“哈工大 LTP java”进一步强调了这个压缩包是针对哈工大LTP平台的Java接口实现,适用于对自然语言处理感...

    java调用动态链接库dll

    在这个例子中,`MyLibrary`接口定义了`say`方法,并通过`Native.load`方法加载对应的动态链接库。调用`say`方法时,JNA框架会自动处理字符串类型的转换,使得Java可以直接调用原生函数。 #### Java和原生代码的类型...

    java调用动态链接库1.doc

    ### Java调用动态链接库(DLL)详解 #### 一、引言 Java作为一种跨平台的语言,能够通过JNI(Java Native Interface)接口调用本地代码(如C/C++)。这在处理特定硬件交互或利用已有高性能C/C++库时非常有用。本文...

    哈工大 LTP java动态链接库 64位的可用

    在Java中,虽然主要依赖于JAR文件来实现类库的加载,但某些情况下,特别是涉及到本地操作系统的功能时,如与硬件交互或调用特定的系统API,Java需要使用JNI(Java Native Interface)来调用动态链接库。 在本压缩包...

    JNative Java调用动态链接库jar包

    2. **库加载**:在Java程序启动时,JNative会自动加载指定的动态链接库。你可以通过JNative提供的API来指定库的路径和名称。 3. **方法映射**:JNative内部会将Java的native方法名转换为符合C/C++的函数调用约定的...

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

    具体场景为用户在尝试使用`System.loadLibrary("helloWorld")`加载一个名为`helloWorld`的动态链接库时遇到了`java.lang.UnsatisfiedLinkError`异常。 #### 二、异常分析 用户遇到的主要问题是`no helloWorld in ...

    JAVA调用动态链接库DLL之JNative学习源码

    在Java编程中,有时我们需要利用C++或C等编写的动态链接库(DLL)来实现特定功能,因为这些语言在处理底层系统操作时通常更为高效。`JNative` 是一个用于Java调用本地代码(如DLL)的开源库,它提供了一个方便的接口...

Global site tag (gtag.js) - Google Analytics