在Java项目中,我正在使用第三方库,该第三方库通过
System.loadLibrary("libName");
我希望能够从我的应用程序中影响此方法的搜索路径,以便用户无需在命令行上指定正确的java.library.path值(此值取决于当前操作系统)和建筑)。例如在Windows上,我想将其设置为“
lib / native / windows”,在Linux 32bit上,将其设置为“ lib / native / linux32”等。
我试过了
System.setProperty("java.library.path", ...)
但这被忽略了,这显然是因为JVM在我的代码运行之前仅读取了此属性一次。
我还尝试在使用依赖于它的Java库之前加载本机libray
System.load("fullPath/lib")
此调用成功,但是当使用System.loadLibrary()再次加载本机库时,仍然会出现UnsatisfiedLinkError。
我发现的唯一方法是:
这行得通,但是我发现它非常复杂并且需要很多努力,因为我需要添加所有这些接口。有没有更简单的方法?
根据您上面的评论(尤其是第三方库的行为),我想说,最好的选择是在启动JVM时正确获取库路径。
请注意,有一种更改库路径的简便方法,但是它涉及讨厌的反射,并且据说不适用于所有Java版本。当然,它依赖于未记录的私有实现细节,ClassLoader
该细节_可能_ 会从一个版本更改为另一个版本。
实际上,下面的代码不能用这个命令用Clang编译: . 我只想模仿与C中的“交换习惯用法”相同的行为,使用“using directive”来启用ADL。但是下面的代码哪里错了呢?预期的调用优先级应为:N1::foo 错误消息: 更新: 我将N2::foo更改为可以在某种程度上模仿std::交换的模板方法。所以,这里的问题是为什么不能由在函数中?因为当它们具有相同的优先级时,该函数应该比要调用的模
我使用Spring Boot,KeyCloak 10,java 8和keyCloak-admin-Client jar。我能够得到用户,他的组和角色。 当涉及到搜索时,我会看到不同的搜索方法选项,例如,我可以: https://www.keycloak.org/docs-api/10.0/javadocs/org/keycloak/admin/client/resource/UsersResour
假设我们有以下 API: 没有客人匹配条件时,我应该返回哪个状态码?我的意思是没有名字为假人的客人。 它应该是带有空数组的、还是
问题内容: 我想构建一个由Instagram照片驱动的小型“即时图片搜索”应用。就像Google Instant,您可以在其中开始键入内容,并且在键入更多字母时显示/更新结果。 您可以看到由Google图片提供支持的实时演示应用。我知道使用大型引擎(Google,Yahoo!,Bing)是可行的,但我不知道Instagram是否允许这样做。任何熟悉API的人都可以提供帮助吗? 如果无法通过有意义的
我理解线性探测中的问题,即由于后续的索引,会出现元素簇。但是我不明白这句话
我的Spring启动应用程序正在使用CouchBase5.1社区。 我的应用程序需要一个主要索引和几个次要索引。 我正在寻找一种通过代码自动完成的方法,所以当应用程序启动时,它将检查索引是否丢失,并在需要时创建它们。 有没有办法通过Spring数据或Couchbase客户机来实现?