- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的 Java 应用程序使用 JNI 访问一些 C++ native 代码。我特别需要这个库 symbolic_graph_jni(由我编写),它需要 glog(来自谷歌)。我确认 libsymbolic_graph_jni.so 依赖于 libglog.so.0。这是 ldd 中依赖项的结构:
|1276|lib>ldd libsymbolic_graph_jni.so
....
libcommon.so => not found
libstorage.so => not found
libdatabase.so => not found
linux-vdso.so.1 => (0x00007fff9d5ff000)
libglog.so.0 => not found
....
在我的 Java 应用程序中,尽管我设置了:
-Djava.library.path=~/myproduct/build/impl/libs
该目录包含:
-rwxr-xr-x 1 mldv eng 18389 Aug 9 08:54 libboost_system.so.1.58.0
-rwxr-xr-x 1 mldv eng 3141033 Aug 9 08:54 libcommon.so
-rwxr-xr-x 1 mldv eng 47034505 Aug 9 08:54 libdatabase.so
-rw-r--r-- 1 mldv eng 528031 Aug 9 08:54 libgcc_s.so.1
-rwxrwxrwx 1 mldv eng 1451910 Aug 9 08:54 libgflags.so.2
-rwxrwxrwx 1 mldv eng 873073 Aug 9 08:54 libglog.so.0
-rwxrwxrwx 1 mldv eng 6520243 Aug 9 08:54 libstdc++.so.6
-rwxr-xr-x 1 mldv eng 8060525 Aug 9 08:54 libstorage.so
-rwxr-xr-x 1 mldv eng 1818771 Aug 9 08:54 libsymbolic_graph_jni.so
-rwxr-xr-x 1 mldv eng 154808 Aug 9 08:54 libutil.so
我总是得到:
java.lang.UnsatisfiedLinkError: ~/myproduct/build/impl/libs/libsymbolic_graph_jni.so: libglog.so.0: cannot open shared object file: No such file or directory
换句话说,在设置了 -Djava.library.path 后,我的 Java pp 找到了 libsymbolic_graph_jni.so,但找不到该库所依赖的 glog.so.0,它位于同一目录中!
什么给了?我在一个目录中有所有共享库,我需要做什么才能让 Java 类加载器找到它们?
最佳答案
尝试启动您的 java
应用程序(假设您使用的是 Linux):
1) export LD_LIBRARY_PATH=<path-containing-so's>
(参见 here。
2) java MainClass
-D 属性只影响 JVM 查找 native 库的位置。
关于java - -Djava.library.path 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856409/
我关于 Spring Boot jar 的问题。 在生产机器上运行 jar 时: java -jar xyz.jar 它不响应我的请求。因为它正在监听 ipv6。 但是当我运行应用程序时 java -
我希望我的小程序使用在 user.home/.java.policy 下创建的策略文件。我很困惑使用该策略文件的正确参数是什么? -Djava.security.policy=file:${user.
我的 Java 应用程序使用 JNI 访问一些 C++ native 代码。我特别需要这个库 symbolic_graph_jni(由我编写),它需要 glog(来自谷歌)。我确认 libsymbol
如何在 Eclipse 项目中指向两个不同的 java.library.path - 运行配置?我需要这两个库: -Djava.library.path=/opt/hdf-java/build/bin
假设我想使用额外的“-Djava.fizz.buzz=3”JVM 参数来运行 Grails (2.3+) 应用程序。 是不是很简单: grails run-app -Djava.fizz.buzz=3
使用 Java 7 Update 5 总是会导致 Java 应用程序(对我来说,特别是 MineCraft)的复杂化,因为它尝试使用 IPv6。禁用 IPv6 根本无法保存。 我发现的每一点信息都在说
我试图在 setenv.sh 文件中指向一个 -Djava.library.path。我的库在 usr/lib64 文件夹中,但是当我尝试做类似的事情时: EXPORTS JAVA_OPTS="-Dc
我需要在执行 .jar 应用程序时链接特定的库。我修改了变量 LD_LIBRARY_PATH 并添加(作为第一个目录)包含所需库的文件夹的路径。我还尝试使用选项 -Djava.library.path
我正在将一个库加载到我的 Java 代码中。我已将库放在 sytem 32 文件夹中,并且还设置了 -Djava.library.path。 早些时候这段代码正在运行 try{ Sys
我希望以编程方式设置 VM 参数 Djava.library.path。如果无法做到这一点,有什么替代方案(如果有的话)? 最佳答案 用这个方法很容易解决: public static void ad
我有一个 Java 应用程序,它依赖于一些用 C 语言编写的遗留代码,它通过 JNI 访问这些代码。 native 库存储在一个子目录中(实际上,有两个子目录:一个包含 32 位库,一个包含 64 位
在 cmd 中执行涉及 Ionic 和 Android 的任何操作时,例如,出现此错误Ionic 构建 Android,或 Ionic 模拟 Android 等...该错误意味着什么,它是否重要,以及
我无法让服务提供者接口(interface)从同一目录中的另一个 JAR 加载实现。它仅在我使用 -Djava.ext.dirs= 时有效。在命令行上。没有它就不能工作吗? 我有以下界面: packa
我想将 Java 8 Spring Boot 项目升级到 Java 11。它使用 Gradle 4.9(包装器)。我使用的是 Intellij 2019.1 社区版。 下载 Java 11 后,当我运
我正在使用校园 wifi 进行开发,最近我搬到了 ubuntu,由于学校代理,我的 netbean 无法连接到互联网。我在 Windows 上遇到了同样的问题,我通过在 cmd 中输入此命令“setx
我正在尝试将 IBM 的 CPLEX 库与我的 java 应用程序集成。现在,我只是尝试创建一个 IloCplex 对象。我添加了 Cplex.jar,它编译得很好,但是当我运行它时: public
Linux环境下如何设置? 我不断收到以下错误。 我假设它是因为我必须设置 -Djava 路径。 在 Eclipse 中我在运行配置的参数中设置。 java.lang.UnsatisfiedLinkE
我刚刚将我的发行版从 ubuntu 更改为 slackware,但位于/home 分区的 eclipse 文件夹仍然相同,我没有格式化它。 eclipse.ini 上有一个 -Djava.librar
我想将 -Djava.library.path VM 选项设置为特定文件夹。但是,它与我的项目文件夹无关,因此我可以这样说: -Djava.library.path=native\windows (文
线程“main”中的异常 java.lang.RuntimeException: native snappy library not available: this version of libhad
我是一名优秀的程序员,十分优秀!