簡體   English   中英

如何覆蓋JRE本機庫?

[英]How to override JRE native libraries?

是否可以在我自己的位置覆蓋帶有庫的JRE本機庫? 我嘗試使用-Djava.library.path=...但是當我檢查lsof -p ,該進程仍在使用JRE副本。

背景:在Mac OS X上的Oracle JRE 7中, javax.security.smartcardio庫已損壞。 如果您經常調用list(),則會出現段錯誤。 但由於修復很簡單(不正確的64位函數簽名),我能夠構建OpenJDK並生成一個固定的libj2pcsc.dylib庫,我想在不更換系統庫的情況下使用它。

我不知道這是否適合你,但我想到的一個想法是java 擴展機制 我自己從未嘗試過,但也許它可以達到你想要的效果。

如果可以將修訂鏈接到共享對象,則可以嘗試通過設置LD_LIBRARY_PRELOAD強制在系統庫之前加載它:

$ LD_LIBRARY_PRELOAD=/path/to/your/libj2pcsc.dylib java com.yourpkg.YourClass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM