这两天在搞jna,感觉路径有点坑。
第一种方式,绝对路径写死。或者放在jdk的bin目录,
CLibrary INSTANCE = (CLibrary) Native.loadLibrary(
System.getProperty("java.home") + "\\bin\\LicenseCtrl\\LicenseCtrl"
, CLibrary.class);
第二种方式,得到打完jar包的目录,jar包,和LicenseCtrl都在D盘下
那么项目中路径
CLibrary INSTANCE = (CLibrary) Native.loadLibrary(System.getProperty("user.dir")+"\\LicenseCtrl\\LicenseCtrl\\LicenseCtrl.dll", CLibrary.class);
当中
System.getProperty("user.dir")得到的是jar包当前所在目录也就是d盘盘符,拼接得到LicenseCtrl.dll的绝对路径,这种方式,只要要把jar包和dll文件夹放一起就行了,不用再代码中写绝对路径,第二种idea运行时跑不起来的,要打成jar包运行才可以