java.library.path 可以在 java 应用程序执行之前或执行期间设置(通过设置 java 库路径的全局环境变量或在运行 java exec jar 时使用标志)。可以像对具有 Class-Path 的类所做的那样,在 java jar 的清单文件中设置它吗?听起来像是应该支持的功能,如果它不存在的话。
编辑:因为正如stdunbar 所提到的,清单文件不支持 java.library.path 映射,所以我添加了一个使用清单文件的替代解决方案的答案。
java.library.path 可以在 java 应用程序执行之前或执行期间设置(通过设置 java 库路径的全局环境变量或在运行 java exec jar 时使用标志)。可以像对具有 Class-Path 的类所做的那样,在 java jar 的清单文件中设置它吗?听起来像是应该支持的功能,如果它不存在的话。
编辑:因为正如stdunbar 所提到的,清单文件不支持 java.library.path 映射,所以我添加了一个使用清单文件的替代解决方案的答案。
由于无法使用清单文件设置 java.library.path,因此我四处寻找替代解决方案。一个不错的方法是通过实际的应用程序代码设置 java.library.path: setting java.library.path programmatically
这解决了我的部署问题,就像一个魅力(不需要额外的脚本来手动设置 -Djava.library.path)。
请注意,如果需要更动态的解决方案,可以将添加的库路径存储在配置文件中,在设置 java.library.path 时读取该配置文件。
编辑:更新链接,感谢@uchuugaka
不,规范不支持这一点。一般来说,java.library.path 变量非常依赖于操作系统和机器,将它包含在 Jar 文件中没有多大意义。