solve the exception : no *** in java.library.path
在eclipse或myeclipse中,遇到 no xxx in java.library.path 这种异常的解决办法
引发这种异常是因为环境变量未指向xxx所在的文件,在JAVA开发中一般指bin目录下的.dll文件
-
解决方法一:
在系统中添加环境变量,指定xxx所在的文件
-
解决方法二:
查看系统中的环境变量,将xxx所在文件复制到环境变量指向的位置; 在JAVA中可以通过
来查看环境变量;System.getProperty("java.library.path")
示例
这里以
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpcap in java.library.path
为例
以下是eclipse所报的异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpcap in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at jpcap.JpcapCaptor.
(JpcapCaptor.java:251)
at jpcap.JPcapTest.main(JPcapTest.java:10)
这里是因为jpcap.dll文件未能通过环境变量找到所引发的异常。(当然,jpcap.jar文件导入正常,所以编写时没有异常,但在运行时,JVM会将.java文件编译为.class文件,需要依赖jpcap的class文件,一般为jre目录下的bin目录下的.dll文件。依赖的jpcap的class文件便是jpcap.dll文件,所以将环境变量指向jpcap.dll文件即可解决)
-
解决方法一:
通过设置系统环境变量path来解决(要在设置好系统环境变量后重启Eclipse才能生效)
-
设置JPCAP_PATH,找到jpcap.dll文件,将其所在文件夹路径设置到JPCAP_PATH中
-
将JPCAP_PATH变量设置到系统变量Path中
-
-
解决方法二:
将jpcap.dll文件放入已经设置好的环境变量path的路径(无需重启Eclipse,建议将文件放到对应jre路径下的bin文件,与jre保持同步)
查看系统环境变量Path或在JVM中运行如下JAVA代码:
String[] split = System.getProperty("java.library.path").split(";"); for (String string : split) { System.out.println(string); }
运行代码如下:
C:\Program Files\Java\jdk1.8.0_111\bin C:\Windows\Sun\Java\bin C:\Windows\system32 C:\Windows C:/Program Files/Java/jdk1.8.0_111/bin/../jre/bin/server C:/Program Files/Java/jdk1.8.0_111/bin/../jre/bin C:/Program Files/Java/jdk1.8.0_111/bin/../jre/lib/amd64 C:\Windows\SysWOW64 C:\Program Files\Java\jdk1.8.0_111\bin C:\Program Files\Java\jdk1.8.0_111\jre\bin C:\ProgramData\Oracle\Java\javapath D:\Program Files\Java\jdk1.7.0_21\D:\Program Files\Java\jdk1.7.0_21\bin D:\Program Files\Java\jdk1.7.0_21\D:\Program Files\Java\jdk1.7.0_21\jre\bin C:\Windows\system32 C:\Windows
输出的结果便是配置好的环境变量,将jpcap.dll文件复制到其中任意一个路径中即可