以编程方式设置Djava.library.path(或替代方案)?

时间:2013-04-12 01:10:34

标签: java jvm

我希望以编程方式设置VM参数 Djava.library.path 。如果无法做到这一点,有哪些替代方案(如果有的话)?

3 个答案:

答案 0 :(得分:6)

使用这种方法解决方案很简单:

public static void addLibraryPath(String pathToAdd) throws Exception {
    Field usrPathsField = ClassLoader.class.getDeclaredField("usr_paths");
    usrPathsField.setAccessible(true);

    String[] paths = (String[]) usrPathsField.get(null);

    for (String path : paths)
        if (path.equals(pathToAdd))
            return;

    String[] newPaths = Arrays.copyOf(paths, paths.length + 1);
    newPaths[newPaths.length - 1] = pathToAdd;
    usrPathsField.set(null, newPaths);
}

答案 1 :(得分:3)

看看这个java doc http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#setProperty(java.lang.String,java.lang.String)

要调用setProperty(String,String)方法。

所以在你的情况下它看起来像这样

System.setProperty("java.library.path","value_you_want");

答案 2 :(得分:3)

使用System.loadLibrary(String libname)加载动态库时使用

java.library.path。 System.load(String filename)使用完整文件名,不需要java.library.path

相关问题