7

プログラムで VM 引数Djava.library.pathを設定しようとしています。これができない場合、代替手段は何ですか (ある場合)?

4

3 に答える 3

10

この方法で解決するのは簡単です:

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);
}
于 2013-04-13T05:14:59.183 に答える
4

このJavaドキュメントを見てください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");
于 2013-04-12T01:16:55.137 に答える
3

java.library.pathSystem.loadLibrary(String libname) で動的ライブラリをロードするときに使用されます。System.load(String filename) は完全なファイル名を使用し、java.library.path.

于 2013-04-12T01:32:38.380 に答える