簡體   English   中英

為Netbeans中的本機dll提供自定義路徑

[英]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.

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