[英]Java JNI, multiple versions of a dll: How to specify which dll is being used for native calls (matlab jvm)
我面臨一個特殊的情況。 我正在嘗試在 matlab 中運行 java 應用程序。 我的應用程序使用外部 dll,它依賴於另一個 dll (xerces-c_3_2.dll)。 我的問題是 matlab 在其根文件夾中還包含一個 xerces-c_3_2.dll 。
不幸的是,這兩個 dll 文件是不同的,不可能以某種方式更改 matlab 內 jvm 的庫路徑。 dll 的“matlab”版本不會影響我的 dll 版本(它會在 matlab 啟動時自動加載),因此。 我的應用程序總是拋出無法找到程序的異常,因為它使用了錯誤的版本。
由於 matlab 不會從我的 dll 版本開始,我現在的想法是將 dll 重命名為“xerces-c_3_2_myVersion.dll”並冗余加載。
對於特定的 jni 調用,我如何告訴 jvm 應該使用哪個本機接口?
在我的 jni 接口中,定義了已知的public final static native
行,但我從未遇到過如何指定 dll 以防冗余本機功能的問題?
有任何想法嗎? 謝謝! 斯文
我已經解決了我的問題:
所以從技術上講,它更像是一個 windows 庫的東西,而不是一個 java 問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.