当前位置:  技术问答>java相关

请问在java里怎么调用dll?

    来源: 互联网  发布时间:2015-09-16

    本文导语:  小弟最近需要在java里调用dll,但部知道应该怎么办? 请各位大虾帮忙! | 可以使用jni技术来实现,JNI是Java native interface的缩写,是java调用本地语言应用的方法, 简述作法如下: 1 a.如果一...

小弟最近需要在java里调用dll,但部知道应该怎么办?
请各位大虾帮忙!

|
可以使用jni技术来实现,JNI是Java native interface的缩写,是java调用本地语言应用的方法,
简述作法如下:
1
a.如果一个类需要调用本地方法(比如c,cpp代码),则先在这个类的类声明中,使用如下语句:static{System.loadLibrary("MyDll");}
b.然后将要调用的本地方法的名称在这个类中声明,声明形式如下:public native void jnimethod();
c.接下来就可以在要用到这个方法的地方,如同一般的java方法一样调用。
以上只是在java代码中要注意的地方
2
d.在完成了如上的步骤后,使用javah命令来生成一个c程序要使用的头文件,格式如下:C:> javah -jni MyJniTest
这样就生成了一个同名,后缀为.h的头文件,打开这个头文件,在其中发现两行形如:
JNIEXPORT void JNICALL Java_MyJniTest_jnimethod
  (JNIEnv *, jobject);
的代码,其中Java_MyJniTest_jnimethod就是在c语言中要生成的方法名称,第二行的括号中就是该方法的两个默认参数
至此,头文件也生成了,
3
e.现在开始生成要被调用的c程序,要编译成.dll文件
要生成形如:
#include 
#include "MyJniTest.h"
#include 

JNIEXPORT void JNICALL 
Java_MyJniTest_jnimethod(JNIEnv *env, jobject obj) 
{
    ......
    return;
}
格式的c/cpp代码,而后生成dll
4
将生成好的dll文件,放置于系统类路径下,即可实现JNI本地方法调用了。

|
我使用的是ibm的xml parser,用起来非常简单的,它会把xml解析为一个dom树,然后我的程序就可以直接操作dom对象,我虽然没有用过其他的解析器,但是我想估计差不多,解析的步骤,你不用关注

    
 
 

您可能感兴趣的文章:

  • 请问用javaScript或vbScript可否调用页面上Applet的public函数?如何调用?
  • 请问在jsp中调用外部的类,与jsp调用javabean有何区别??
  • 请问如何在Java中调用一个VB所写的DLL?如何调用这个Dll的方法?如何取得和设置这个Dll的属性值?谢谢!
  • 请问linux中的系统调用号是如何跟系统调用表对应起来的
  • 请问Java可否调用MsSQL的存储过程,如何调用?
  • 请问jsp可以调用EJB吗?
  • 请问这个方法如何调用?
  • 请问在jsp中如何调用ActiveX控件啊!求救
  • 请问:如何调用抽象类的方法
  • 请问make是如何调用gcc的啊
  • 请问.ini文件的格式及调用
  • 请问gcc有没有类似GetExitCodeProcess的函数,可以获得调用的外部程序的返回值呢?
  • 请问如何用jni类来调用一个非java写的外部exe?谢谢!
  • 请问高手:我想用applet调用一个本地的exe。怎么办?
  • 请问java如何调用com?请大家发表意见和指点一下。
  • 请问:make 嵌套调用,变量如何向下传递 3 级?
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 请问如何在一个JSP页面调用一个exe程序呢?谢谢!
  • 请问有没有和DU或DF对应的系统调用?
  • 请问如何在web页面调用word,并将所有的所有表单参数调的word中排版、打印。
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • 请问JAVA如何定义常量实行多个JAVA程序共用?
  • 请问java2与java1.1差别大不大
  • 初学JAVA,请问各位哪本数据结构(JAVA版)比较好?
  • 急!请问有分析java程序性能瓶颈的工具吗?例如,统计 java 程序中函数调用次数?
  • 请问Java的各位仁兄那个Java 2 Runtime Environment在哪里安装的?
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • 请问Java能干什么,java vm的速度是在是太慢!
  • 我没用过Java,请问各位大侠Java中除了/*...*/用作注释外,还有什么符号可用于注释符?
  • 请问Java TM Programming Language中的TM(在Java的右角上)是什么意思啊?
  • 请问大家用什么开发java程序,我基本上学会了java语法,不知用什么来开发它?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!
  • 请问出现fstab文件丢失该怎么修复呀?
  • 请问一个奇怪的问题!
  • 请问在网页中打开的新窗口,如何让其居中。
  • 请问我该学什么了
  • 请问安装zhcon,cxterm问题
  • 非常急! 请问daemontools 在red hat 9下的安装问题? 在线等待
  • 请问如何在一台单机上装VMware的网络访问问题?
  • (急)请问大侠,JDK怎么配置?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3