java卸载dll,Jna,动态地从java类卸载Dll

I have googled bit , but dint find way to unload dll using JNA ,from java Class.

And as i am using dll to transfer data from usb device using this dll, i have to unload my dll from java class in order to re-use my usb device with same class without closing my whole program.

here is how i load my dll using JNA

public interface UsbSensor extends Library {

UsbSensor INSTANCE = (UsbSensor) Native.loadLibrary(

(Platform.isWindows() ? "D:\\UsbDevice.dll" : "D:\\UsbDevice.dll"), UsbSensor.class);

int SearchDevices();

Pointer Startacquisition(String type);

}

and by

UsbSensor sdll = UsbSensor.INSTANCE;

Dll is loded. And here how i use my function

sdll.SearchDevices();

sdll.Startacquisition();

And now after using these function I must have to unload my dll in again load dll using above code. order reuse these function.

So how to unload dll dynamically Using JNA?

解决方案

I had the same issue but using Native.dispose() did not help. The solution to my problem was this question and answer. It basically sets instance of the native library to null and calls the garbage collector.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值