2011-12-28 18 views
4

爲了加載.DLL(在Windows下)或.SOs(在Linux下),我們必須使用環境變量PATH(Windows)或LD_LIBRARY_PATH(Linux)。如何爲Netbeans中的每個項目指定LD_LIBRARY_PATH(或PATH)?

我們能夠正確使用DLL和SO的唯一方法是在啓動Netbeans之前定義環境變量。

  1. 有沒有一種方法可以指定 Netbeans中的那些環境變量?
  2. 是否可以在項目 屬性中指定它?這樣每個項目都可以有自己的定義。
  3. 有沒有辦法只是附加到這些環境變量而不是重寫它們?

背景:我們正在開發一個使用JNI訪問本機庫的Java程序。那些本地庫反過來訪問其他依賴本機庫。因此,只需設置屬性「java.library.path」不起作用,因爲我們需要設置完整的LD_LIBRARY_PATH(或者Windows的常規PATH)。

外部NetBeans應用程序運行正常,因爲我們在shell腳本中設置了環境變量。

我們不希望只將DLL或SO放在通常的系統目錄中,因爲我們不想在開發過程中搞砸操作系統安裝。另外,我們希望具有靈活性,允許任何開發人員從源代碼​​管理(Mercurial)中簡單地獲取項目並使所有相關路徑正常工作。

已經有堆棧溢出破解設置environment variables programmatically in Java。但是,我們正在尋找一種解決方案不太危險的方法。

回答

0

您可以覆蓋NetBeans在build.xml文件中使用的Ant腳本任務(或直接在nbproject/build-impl.xml的完整腳本中編輯它,但不推薦)。

java task用於run目標。您可以使用env參數爲將運行JVM的進程指定環境變量。

相關問題