如何以编程方式设置java中动态库的加载路径?
System.setProperty("java.library.path", "pathToLibs");
不起作用,因为“java.library.path”似乎是只读的,或者 JVM 只是忽略该属性。
我知道可以通过设置 PATH(在 Windows 中)、LD_LIBRARY_PATH(在 POSIX 中)或仅使用命令 java -Djava.library.path=your_path 来完成。
但是有没有一种编程方法可以做到这一点?
System.setProperty("java.library.path", "pathToLibs");
doesn't work because it seems either "java.library.path" is read only or JVM just ignores the property.
I know it can be done by setting PATH(in windows), LD_LIBRARY_PATH(in POSIX) or just use the command java -Djava.library.path=your_path.
But is there a programming way of doing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
java.library.path 在 VM 启动时进行评估,因此稍后更改它不会对加载本机库产生任何影响。但是,您可以使用 System.load(String filename); 指定要加载的本机库的完整路径,也许与 System.mapLibraryName(String) 一起使用添加特定于平台的文件结尾(例如.dll 或.so)。
java.library.path is evaluated when the VM starts, so changing it later does not have any effect on loading native libraries. You can however use
System.load(String filename);
to specify the complete path to the native library you want to load, perhaps together withSystem.mapLibraryName(String)
to add the platform specific file ending (e.g. .dll or .so).