![](/img/trans.png)
[英]giving 'java.library.path' in netbeans for .dll/.so files
[英]Giving custom path for native dll in Netbeans
我有一個NetBeans平台應用程序,其中有2個模塊具有相同的本機庫的不同版本。
我在每個模塊下的release / module / lib文件夾中添加了本機庫。 [根據http://wiki.netbeans.org/DevFaqWrapperModules部分:如何 在我的庫包裝模塊中 包含本機庫( .so或.dll)?]
但是問題是在應用程序的最終生成過程中,本機庫被復制到build \\ cluster \\ modules \\ lib文件夾中。 即,lib文件夾中僅存在我的本機庫的一個版本,因為兩個版本的名稱相同。 現在我的問題是,我可以在Netbeans中特別提到jar(版本1)應采用本機lib(版本1),而jar(版本2)應引用本機lib(版本2)。
您可以通過兩種方式加載本機庫文件(.dll / Windows或.so / Linux):
1)通過提供完整路徑來加載文件:
System.load("my/full/path/native.dll");
2)如果您的本機文件位於Java庫路徑內:
System.loadLibrary("native");
請注意,在第二種情況下,您僅需要提供本機文件的名稱(不帶擴展名)。
默認的Java庫路徑取決於操作系統:
在Windows上,它映射到PATH
在Linux上,它映射到LD_LIBRARY_PATH
在OS X上,它映射到DYLD_LIBRARY_PATH
如果要設置自己的Java庫路徑:
try {
System.setProperty("java.library.path","YOUR/PATH");
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
fieldSysPath.setAccessible(true);
fieldSysPath.set(null, null);
} catch (Exception ex) {
System.out.println("Failed to set Java Library Path: " + ex.getMessage);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.