`
空空儿
  • 浏览: 136680 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

JNI加载dll两种方式

阅读更多
  今天在用java调用dll文件的时候调用方法写错了,以至于一直出错。现在就记录一下。

Java中加载dll文件的方法有两种:
①、System.load(String filename);
    从作为动态库的本地文件系统中以指定的文件名加载代码文件。文件名参数必须是完整的路径名(指的是绝对路径)。dll文件可以随便放到哪个目录下面,指定了绝对路径找到文件就OK了。filename指的就是加载的文件。
  
②、System.loadLibrary(String libname);
  
    加载由 libname 参数指定的系统库。将库名映射到实际系统库的方法取决于系统,libname指的指定的动态库的库名。
     用这个方法我是直接把dll文件放到System32下面的,自动去加载的。


<今天出现的错误是把两个方法用反了,因为也是在网上找的资料,一时没明白过来哪里错了。所以现在就记录一下,以免下次再犯>


Java文件编译成JNI文件
先吧java文件编译成class文件,再把class文件编译成*.h的文件
例如,Hello.java

javac Hello.java      //编译java

(Hello的class路劲指定) javah -classpath.Hello    //生成头文件,-classpath为所在的包路劲

 


    
3
0
分享到:
评论
2 楼 空空儿 2010-01-22  
zhangygood 写道
越来越牛了啊,哈哈

   呵呵。。哪里哪里呀。差太远啦。。
1 楼 zhangygood 2010-01-22  
越来越牛了啊,哈哈

相关推荐

    Java通过JNI调用C++的DLL文件.docx

    该 Demo 文档提供了 Windows 和 Linux 两个版本的实现方式,均经过作者亲自测试。 标签解析 文章的标签“java C++ 接口调用”表明了文章的主要内容,即使用 JNI 将 Java 应用程序与 C++ DLL 文件集成。 部分内容...

    java运用jni调用dll实现屏蔽系统热键和任务栏

    4. **加载DLL**:在Java程序中使用`System.loadLibrary`加载DLL,并调用JNI方法。 5. **调用DLL函数**:在Java中通过JNI接口调用DLL中的函数,实现热键屏蔽和任务栏隐藏功能。 在开发过程中,需要注意的是,由于...

    springboot+jna/jni调用动态so/dll库

    它涉及到Spring Boot应用如何利用Java Native Interface (JNI) 和 Java Native Access (JNA) 这两种技术来调用操作系统级别的动态链接库(.so for Linux, .dll for Windows)。 **Spring Boot** Spring Boot是...

    JNI DEMO:java jni技术 调用 c/c++ 的dll

    Java应用会通过JNI加载这个DLL,并调用其中的get()和set()方法。"native.jar"是一个Java类库,可能包含了Java层与C/C++交互的类,这些类声明了native方法并负责加载DLL。在运行Java应用时,需要确保环境变量`java....

    jni4net-0.8.8.0.zip

    “dll”则指的是动态链接库,它是Windows操作系统下共享代码的一种方式,通常用于实现跨多个程序的功能。 在“jni4net-0.8.8.0-bin”这个压缩包中,我们预期会找到以下内容: 1. **jn4net.dll**:这是主要的桥梁...

    JNI实现的DEMO Java调用VC编写的DLL,对应于Linux .SO

    这两种文件都包含了可被Java代码通过JNI调用的函数。 描述中提到的“包含C的项目和Java的Eclipse项目”,意味着这个压缩包里有两个部分:一个是C语言的项目,可能包含VC6(Visual C++ 6.0)工程文件,用于创建DLL;...

    [测试通过]JAVA调用第三方DLL的简单方法:JNA及DEMO

    首先,我们需要加载DLL,这可以通过`NativeLibrary.addSearchPath`完成,然后使用`Native.loadLibrary`加载库。接着,创建接口的实例,调用接口方法并处理返回值。 以下是一个简单的示例代码片段: ```java public...

    [JAVA]使用JNI技术实现JAVA程序调用dll

    现在开始讨论上面提到的问题,一般设备商会提供两种类型的类库文件,Windows 系统的会包含 .dll/.h/.lib 文件,而 Linux 系统的会包含 .so/.a 文件,这里只讨论 Windows 系统下的 C/C++ 编译的 dll 文件调用方法。...

    java写的一个使用jni调用c/c++的dll

    在这种情况下,JNI(Java Native Interface)成为连接这两种语言的桥梁。本文将深入探讨如何使用Java通过JNI调用C/C++编写的DLL动态链接库。 首先,JNI提供了一个标准的方法,让Java代码可以与本地代码交互,如C/...

    android_JNI介绍

    在Java与Dll交互的技术中,JNI是最直接和强大的一种方式。JNI提供了Java程序与系统原生方法的桥梁,而JAWIN和JACOB则是针对特定平台或技术的解决方案。JACOB主要针对Microsoft的COM组件,而JAWIN则用于与Win32-DLL...

    jacob的jar和dll文件

    Jacob通过JNI(Java Native Interface)桥接Java和COM,实现了这两种技术的互操作。 2. **Jacob的jar文件**:`jacob.jar`是Jacob的核心库文件,它包含Java接口和类,这些接口和类对应于COM接口和类。在Java代码中,...

    tensorflow 1.15.0版本 arm64/aarch64 版本JNI依赖

    JNI是一种允许Java代码和其他语言写的代码进行交互的技术,它使得Java可以调用本地(非Java)代码,例如C++或C。在这个特定场景下,JNI被用来连接Java层的TensorFlow库与底层的C/C++库,实现高效的数据交换和计算。 ...

    jniDemo.7z

    JNI(Java Native Interface)..."JniDemo.java" 是Java端的入口,负责定义JNI方法和加载DLL,而"JniTest.dll" 和 "JniDll.dll" 则是本地实现的组件。这个例子为学习和理解Java如何通过JNI调用本地代码提供了实践素材。

    jni java调用c/c++

    JNI 提供了两种方式来实现 Java 与 native 代码的交互:即 Java 调用 native 代码和 native 代码调用 Java。 Java 调用 C/C++ 在 Java 中,我们可以使用 native 关键字来声明 native 方法。例如,在 HelloWorld....

    JNI 完全技术手册

    JNI将这两种优势结合起来,使得开发者能够充分利用不同语言的特点。 ### JNI 完全手册知识点: #### 1. JNI 定义与设计目的 JNI定义了Java和本地应用之间交互的接口,它允许Java代码调用本地应用程序接口(如C/C++...

    Java jni调用c实例

    Java JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。...通过掌握JNI,开发者可以充分利用两种语言的优点,如Java的跨平台性和C/C++的高效性能。

    jni-jna-web.zip

    JNI(Java Native Interface)和JNA(Java Native Access)是Java平台中用于与本地代码交互的两种主要技术。它们允许Java应用程序调用C、C++等本地库,从而扩展Java的功能,解决性能瓶颈或利用已有的非Java库。本...

    最简单的JNI编程-实现两个数相加

    JNI提供了一种方式,让Java代码可以调用C/C++编写的函数,同时也允许C/C++代码调用Java的方法。这个过程涉及到几个关键步骤: 1. **定义Native方法**:在Java类中声明一个native方法,不提供具体实现,例如: ```...

    Delphi10.3 中通过JNI调用 Java 函数

    3. 在Delphi程序中加载DLL,获取JNI函数的指针。 4. 使用DLL中的JNI函数调用Java方法。 通过这种方式,开发者可以充分利用Java和Delphi的优势,实现跨平台的高效开发。在实际项目中,这种技术尤其适用于需要高性能...

    jni.zip_java jni_jni_jni-api_jni方面的书

    JNI的核心在于提供了一种方式,使得Java应用程序能够调用本地方法(即非Java语言编写的方法),同时也允许本地代码调用Java类。这为开发者提供了极大的灵活性,尤其是在处理操作系统特定的功能、硬件加速以及与现有...

Global site tag (gtag.js) - Google Analytics