我的java代码通过JNI调用来自共享库的一些C ++代码(例如libtest.so)。代码中包含一些特殊的调试符号,它们存在于libdebug.so中。当我打电话
LD_PRELOAD = / usr / lib / libdebug.so java com.test.myMain
执行以Exception in thread "main" java.lang.UnsatisfiedLinkError
因为没有加载libdebug.so中的符号(为什么?)。
我想知道是否可以修改我的代码以便在我的java代码中PRELOAD库。 (当然我不想用libdebug.so编译java ...)
答案 0 :(得分:1)
System.load
可用于加载任何共享库,因此您可以尝试使用System.load
在加载JNI库之前在静态块中加载调试库。
或者在JNI lib之前尝试System.loadLibary("debug")
。