1.java要读取动态连接库,首先要有库文件,即dll文件,jdk中自带的有一部分dll文件,但是大部分情况下我们都是调用自己的库文件,这个时候就要把dll文件加载到java.library.path所指的路径中,如果没有加,那么在加载dll的时候机会报如下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no XXXXX in java.library.path
解决方式要么把dll文件路径加到java.library.path中,要么把dll文件放到java.library.path所指的任何一个目录中.
2.查看java.library.path都有哪些,打印下就知道了
System.err.println(System.getProperty("java.library.path"));
C:\Program Files\Java\jdk1.8.0_172\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;%JAVA_HOME%;C:\Program Files\Java\jdk1.8.0_172\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\OpenSSL-Win64\bin;C:\Program Files\nodejs\;E:\adb\platform-tools;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Scripts\;C:\Users\Administrator\AppData\Local\Programs\Python\Python38\;C:\mysql-5.6.43\bin;C:\Program Files\Git\bin;C:\Program Files\JetBrains\IntelliJ IDEA 2018.3\bin;
可以看出这个路径有很多.
动态修改java.library.path,然后加载dll
//linux动态添加java.library.path,然后加载dll
private static void loadLibDynamically() {