sigar.jar为什么要依赖sigar-amd64-winnt.dll 还有别的几个dll,如果是非NT系统则是so文件 
而且在运行的时候一定要把这些依赖的文件放到jdk\bin下面  有没有办法把这几个依赖的文件放到别的地方也可以用呢

解决方案 »

  1.   

    sigar中有很多的实现是通过jni实现的,所以运行在不同的平台上需要加载对应的本地动态链接库
    放在jdk/bin下好使,是因为jvm默认会在此路径下加载本地库
    其他的方式:
    1. 程序运行时库加入到java.library.path系统属性中,类似:    void addLibrary(String[] libPath) {
            if (libPath == null) {
                return;
            }
            
            String libs = System.getProperty("java.library.path");
            for (String s : libPath) {
                libs += File.pathSeparator + s;
            }
            
            System.setProperty("java.library.path", libs);
        }
    或者可以通过System.loadLibrary