调用dll的Java编程 JAVA调用DLL,使用JNA比较方便.很简单,去官网看下例子就行.有疑问可以PM我.请问以下JAVA说明应该怎样操作?关于调用dll的.谢谢了,大神帮忙啊 因为你装载的库(dll)的路径是lib/CamelTTS,而你的dll放在lib下,当然是不可以的 有以下几种修改方式:1:把dll放到lib/CamelTTS目录下 2:把System.loadLibrary(\"lib/CamelTTS\");改成把System.loadLibrary(\"lib\");3:什么也不要改,在运行的时候用命令java-Djava.library.path=lib tryTTSJava如何调用本地dll库里面的方法 JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。简单介绍及应用如下:一、JAVA中所需要做的工作在JAVA程序中,首先需要在类中声明所调用的库名称,如下:static {System.loadLibrary(“goodluck”);}在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具 体实现。如下:public native static void set(int i);public native static int get();然后编译该JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就会生成C/C++的头文件。例如程序testdll.java,内容为:public class testdll{static{System.loadLibrary(\"goodluck\");}public native static int get();public native static void set(int i);public static void main(String[]args){testdll test=new testdll();test.set(10);System.out.println(test.get());}}用javac testdll.java编译它,会生成testdll.class。再用。安装java时总是出现说安装需要的DLL不能运行时什么原因啊?? 解决方案:1.如果之前安装过jdk,可能是之前的没有卸载干净.可以查看下注册表信息,是否有残留2.从新下载其他版本安装试下.java 操作 dll,这个dll文件应该放在什么位置? 工程目录下面,或者系统的system32的目录下面,也就是软件能找的到的地方!放到其他的路径也可以,但是你就要告诉一下软件让软件知道去哪里找就行了!请教有关java调用dll获取信息,用jna 以下为dll里面的函数ifndef_SENSE_RFID_PUBLIC_Hdefine_SENSE_RFID_PUBLIC_Hinclude\"ResponseStatus.h\"/API返回状态MACRO definitiontypedef unsigned short USHORT;enum CONN_TYPE{connNet=0,connSerial=1,};typedef struct_CONNECT_HANDLE{CONN_TYPE conType;HANDLE conHandle;}HCONN;函数名:rfid_Open功能描述:连接读写器(通过网络或串口)输入参数:使用网络:connType=connNetaddr:读写器IP地址,ex).\"192.168.1.178port:读写器连接端口号(默认使用4001)使用串口:connType=connSerialaddr:连接读写器使用的串口,ex).\"COM1\",…,\"COM9\",\"\\\\\\\\.\\\\COM10\",\"\\\\\\\\.\\\\COM11\",port:连接读写器使用的波特率(默认使用115200)输出参数:hCon:连接句柄返回值:0x00 表示成功,其它状态码参考API使用说明的状态码表USHORT WINAPI rfid_Open(HCONN&hCon,CONN_TYPE connType,char*addr,DWORD port);函数名:rfid_Close功能描述:断开连接输入参数:hCon:连接句柄(详情请见rfid_Open函数)输出参数:无返回值:0x00 表示成功,其它状态码参考API使用说明的状态码表USHORT WINAPI rfid_Close(HCONN hCon);Java如何将dll文件打包到jar中? /BIN_LIB为JAR包中存放DLL的路径getResourceAsStream以JAR中根路径为开始点private synchronized static void loadLib(String libName)throws IOException {String systemType=System.getProperty(\"os.name\");String libExtension=(systemType.toLowerCase().indexOf(\"win\")。1)?.dll\":\".so;String libFullName=libName+libExtension;String nativeTempDir=System.getProperty(\"java.io.tmpdir\");InputStream in=null;BufferedInputStream reader=null;FileOutputStream writer=null;File extractedLibFile=new File(nativeTempDir+File.separator+libFullName);if。extractedLibFile.exists()){try {in=SMAgent.class.getResourceAsStream(BIN_LIB+libFullName);if(in=null)in=SMAgent.class.getResourceAsStream(libFullName);SMAgent.class.getResource(libFullName);reader=new BufferedInputStream(in);writer=new FileOutputStream(extractedLibFile);byte[]buffer=new byte[1024];while(reader.read(buffer)>;0){writer.write(buffer);buffer=new byte[1024];}} catch(IOException e){e.printStackTrace();} finally {if(in。null)in.close();if。
随机阅读
- 利用Eview 8.0检验数据正态性的两种操作 eviews正态性检验怎么做
- 怎样看建筑总平面图 乡村道路工程总平面布置图
- 12.25是圣诞节也是我生日! 又是圣诞节又是生日
- 氯乙烷粘度 苯酚四氯乙烷1:1配制好了以后,做黏度,用不完的需要每天都搅拌吗?搅拌需要加热吗?
- 佛山市三水区有哪几个镇? 深圳怎么去三水大旗头村
- 中国月饼的十大品牌 资溪县 资府壹号
- 王国纪元每天都耍最快几天17级 《王国纪元》宝箱概率技巧性使用
- 母婴保健法第五条 母婴保健法第三十五条是如何规定的?
- 水岸星城的安陆水岸星城 新晟水上乐园安陆电话
- 做一个微量的毕业生,看到有些人诋毁他,我想说一些话? 上海市水丰路小学校服
- 如何评价《汉阙》? 相映成趣可以用在爷孙玩
- 二战美军陆军编制(战斗序列)是怎样的 二战中美国战斗序列
- 非公企业调研 如何开展非公和社会组织摸底调查
- 一些终身的保险。是按20年交还是30年交好? 20~30你那这10年干什么
- 主要的一些路由协议 有哪些 路由协议分为哪几类?
- 聚四氟乙烯是什么物质? 埠新恒通氟化学有限公司
- 南阳卫校下午几点上班 南阳上卫校初中毕业可以上吗?需要分数吗?要回答哦拜托了谢谢
- 求火影忍者赤砂之蝎或迪达拉QQ头像 火影忍者赤沙之蝎头像
- 华为悦盒 语音 华为悦盒如何一键安装第三方软件教程
- 二硫化钼是否属于危险化学品 三氧化钼pH值多少