私の Java コードは、JNI を介して、共有ライブラリ (libtest.so など) からいくつかの C++ コードを呼び出します。コードには、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 をコンパイルしたくありません...)