`
insomniask
  • 浏览: 40499 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java调用本地方法

阅读更多

        这几天研究了下 JAVA调用C ,在不懂C的情况下研究这个实在让人郁闷,还好总算搞出来了。

  JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。

 

下面来说说如何实现 JAVA调用C

 

首先来说JAVA部分

 

JAVA 部分

   1、  加载动态库(dll文件

         static {
          System.loadLibrary(“dll库文件
”);
         }

   2、   调用的方法做本地声明,关键字为native  方法不用实现 C实现

     public native void displayHelloWorld();

 

   3、  执行javac HelloWorld.java (以下java类的命名都以HelloWorld命名)

   4、  执行javah –classpath . HelloWorld  生成 .h”文件. 把这个“.h”文件交给C实现。

 

 

C方面操作

 

     用vc++做为编译器具体操作如下:

 

         1、  创建项目—>win32 项目—>应用类型选择dll

         2、  C类库不包括与java通信的库类,将JNI加载到C库类中 也就是 JAVA jdk include文件夹的所有文件C 编译器 VC\include

 

        3、  实现HelloWorld.h接口 生成 dll文件(生成的dll文件用replase下的 否则会产生java.lang.UnsatisfiedLinkError 或者乱码情况 )。

        4、  把生成的dll文件拷贝到和class文件一个目录下 运用 java 

 

     注:提供可运行jnirun.bat 方便查看结果

 

 

1
0
分享到:
评论

相关推荐

    通过Java调用本地方法.pdf

    "Java调用本地方法详细指南" Java Native Interface(JNI)是Java开发中的一种技术,允许Java代码调用本地方法,从而与其他语言编写的应用程序和库进行交互。JNI是Java Development Kit(JDK)的组成部分,已经被...

    java调用本地打印机

    在Java编程环境中,调用本地打印机是一项常见的任务,特别是在企业级应用中,如报表生成、文档打印等场景。本文将详细讲解如何利用Java API来实现这一功能,以及可能遇到的问题和解决方案。 首先,Java提供了`java....

    Java本地调用接口 JNative

    - **Java调用本地方法**:通过`native`方法的实例方法调用本地代码。 - **本地代码调用Java方法**:通过JNIEnv指针,本地代码可以访问和调用Java对象的方法,访问Java数组,甚至创建新的Java对象。 6. **JNI数据...

    通过Java调用本地方法探究 (2011年)

    Java程序语言虽然是一种非常...本文将重点探讨Java程序对本地方法的调用,从探讨Java调用本地方法的原因及意义入手,进而对其调用本地方法的几个步骤做了阐述,紧接着对几种常见的Java调用本地方法的方案进行分析和对比。

    java中调用本地exe文件

    本文将详细介绍如何在Java中调用本地exe文件,并解析提供的代码示例。 ### 一、Java中调用本地exe文件的基本原理 #### 1.1 调用本地exe文件的方式 在Java中,可以通过`java.lang.Runtime`类或者`java.lang....

    TSC条码打印机java调用.pdf

    该接口继承自`Library`类,这表明它是通过Java调用本地方法的一种方式。接口中声明了一系列的函数,每个函数对应打印机的一个操作,如打开端口、发送命令、打印条码、下载图片等。 2. **调用本地DLL库**:文档使用...

    java调用本地浏览器的demo

    Java调用本地浏览器的示例,通常涉及到Java与操作系统交互的能力,这主要通过Java的`Runtime`类或者`ProcessBuilder`类实现。这两个类允许Java程序执行系统命令,例如打开一个本地已安装的浏览器来加载特定的URL。...

    Java调用本地的远程桌面连接

    要实现Java调用本地的远程桌面连接,通常会使用`Runtime.getRuntime().exec()`方法来执行系统命令。这个方法允许我们在Java程序中执行任何可执行文件或命令行脚本。例如,我们可以构造一个包含用户名、密码和目标...

    java调用本地dll的几种方法性能对比测试

    java调用本地dll的几种方法性能对比测试。 JNA消耗的总时间(ms):5406 bridj消耗的总时间(ms):984 JNI消耗的总时间(ms):47 包含c++源码和java源码,部署和使用方法。在win7和winxp下测试用过。 部分源码是...

    Java通过JNI调用C语言函数库的方法.zip

    Java通过JNI(Java Native Interface)调用... - 示例应用:演示如何从Java调用本地方法的示例程序。 通过理解并实践这个项目,你可以深入掌握Java通过JNI调用C语言函数库的方法,为开发混合型Java应用打下坚实基础。

    Java调用DLL例子

    - 使用JNI头文件生成对应的Java本地接口(JNI)代码,这些代码包含了Java调用本地方法的接口定义。 - 编译C/C++代码生成动态库(如.dll文件)。 - 在Java代码中,声明native方法并使用`System.loadLibrary`加载...

    Java语言如何调用C++语言编写的本地方法

    JNI允许Java代码调用本地方法,并且使Java方法能够被本地应用调用。下面详细讨论Java调用C++本地方法的步骤和相关知识点。 1.了解JNI架构和组件 JNI是一套规范,允许Java虚拟机(JVM)与本地应用程序和库进行交互。...

    JAVA调用DLL方法 JAVA调用DLL方

    通过JNI,开发者可以编写本地方法并将其链接到Java应用中。这种方式灵活性高,但同时也意味着需要额外的工作量来编写和管理本地代码。 #### JAWINJNative JAWINJNative是一种简化了JNI使用的工具,它允许直接调用...

    基于Java的本地调用接口 JNative.zip

    5. **Java调用本地方法**:现在,Java代码可以通过实例化Java对象并调用native方法来执行本地代码。 三、JNI关键概念 1. **JNIEnv指针**:每个本地方法都有一个JNIEnv指针作为第一个参数,它是JNI函数的入口点,...

    java调用c#样例

    标题"java调用c#样例"指的是使用Java语言通过Jacob库调用C#编写的动态链接库(DLL)。C# DLL通常包含.NET Framework中的方法和功能,而Java应用程序可以借助Jacob库来访问这些功能,从而实现跨语言的互操作性。 ...

    基于java的开发源码-本地调用接口 JNative.zip

    这个压缩包的源码可能会包含各种示例,例如如何从Java调用本地方法,如何传递参数,以及如何处理返回值等。通过学习和实践这些示例,开发者可以更深入地理解JNI的工作原理,并能熟练地在Java项目中集成本地代码。

    JAVA通过本地方法调用C例子

    本案例将详细讲解如何在Java中通过本地方法调用C语言实现的功能,具体以一个调用系统时间的简单例子进行说明。 首先,我们来看`TimeShow.java`这个Java类,它通常包含了一个native方法声明,例如: ```java public...

    java调用c代码:AVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式 )。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法

    JNI(Java Native Interface)就是为了弥补这一不足,它允许Java代码调用本地方法,这些方法通常以库文件的形式存在,如Windows上的DLL(Dynamic Link Library)或UNIX上的SO(Shared Object)文件。通过JNI,Java...

Global site tag (gtag.js) - Google Analytics