ZKX's LAB

java dll版本信息 请教有关java调用dll获取信息,用jna

2020-07-25知识11

调用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。

#static#dll文件#system#lib

随机阅读

qrcode
访问手机版