4

是否可以用我自己位置的库覆盖 JRE 本机库?我尝试使用-Djava.library.path=...,但是当我检查时lsof -p,该过程仍在使用 JRE 副本。

背景:在 Mac OS X 上的 Oracle JRE 7 中,该javax.security.smartcardio库已损坏。如果您调用 list() 过于频繁,则会出现段错误。但由于修复很简单(不正确的 64 位函数签名),我能够构建 OpenJDK 并生成一个固定libj2pcsc.dylib库,如果可能的话,我想在不替换系统库的情况下使用它。

4

2 回答 2

0

我不知道这是否适合您,但想到的一个想法是 java扩展机制。我自己从未尝试过,但也许它可以实现您想要的。

于 2013-03-11T22:43:59.463 回答
0

如果您可以将修复链接到共享对象,那么您可以尝试通过设置 LD_LIBRARY_PRELOAD 来强制它在系统库之前加载:

$ LD_LIBRARY_PRELOAD=/path/to/your/libj2pcsc.dylib java com.yourpkg.YourClass
于 2013-03-11T23:14:30.120 回答