是否可以在我自己的位置覆盖带有库的JRE本机库?我尝试使用-Djava.library.path=...
,但当我检查lsof -p
时,该过程仍在使用JRE副本。
背景:在Mac OS X上的Oracle JRE 7中,javax.security.smartcardio
库已损坏。如果您经常调用list(),则会出现段错误。但由于修复很简单(不正确的64位函数签名),我能够构建OpenJDK并生成一个固定的libj2pcsc.dylib
库,如果可能的话我不想更换系统库。
答案 0 :(得分:0)
我不知道这是否适合你,但我想到的一个想法是java extension mechanism。我自己从未尝试过,但也许它可以达到你想要的效果。
答案 1 :(得分:0)
如果您可以将修复程序链接到共享对象,则可以尝试通过设置LD_LIBRARY_PRELOAD强制将其加载到系统库之前:
$ LD_LIBRARY_PRELOAD=/path/to/your/libj2pcsc.dylib java com.yourpkg.YourClass