gpt4 book ai didi

以编程方式设置 Java.library.path

转载 作者:行者123 更新时间:2023-12-01 19:15:07 29 4
gpt4 key购买 nike

我可以通过 Java 代码本身以编程方式设置 java.library.path 吗?

以下内容不起作用。

    System.setProperty("java.library.path", "/blah");

最佳答案

也许这会有所帮助:Setting "java.library.path" programmatically

在使用 JNI 时,必须相应地设置 java.library.path。不幸的是,唯一的方法是在应用程序启动之前添加系统属性:

java -Djava.library.path=/path/to/libs  

稍后更改系统属性不会产生任何影响,因为该属性很早就被评估并被缓存。但 jdic 的人发现了一种解决这个问题的方法。它有点脏——但是,嘿,这些 hack 是我们都喜欢 Java 的原因......

System.setProperty( "java.library.path", "/path/to/libs" );  
Field fieldSysPath = ClassLoader.class.getDeclaredField( "sys_paths" );
fieldSysPath.setAccessible( true );
fieldSysPath.set( null, null );

说明

首先,系统属性会更新为新值。这可能是相对路径 - 或者您可能想动态创建该路径。

类加载器有一个包含路径的静态字段 (sys_paths)。如果该字段设置为 null,则会自动初始化。因此,一旦调用 loadLibrary(),强制该字段为 null 将导致重新评估库路径...

关于以编程方式设置 Java.library.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59428174/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com