2012-12-04 35 views
1

我對編程相當陌生,所以這應該是一件容易的事。我從eclipse切換到NetBeans,我試圖將libjinput-osx.jnilib添加到我的工作目錄中。我有一步一步的eclipse指令,但不是netbeans。我約2.5小時和65谷歌搜索,我仍然無法找到我有這兩個基本問題的答案。Java工作指南

  1. 在java中究竟是working directory
  2. 如何在NetBeans中將.jnilib文件添加到工作目錄中?

我的最終目標是讓一個xbox控制器來控制我寫的蛇的遊戲。我正在嘗試使用JInput和this tutorial。爲了在OSX上正確編譯,我需要將libjinput-osx.jnilib放在「工作目錄」中。

回答

2

有兩個方面這個問題。

從命令行運行命令時,「工作目錄」是運行命令時所處的目錄。您正在閱讀的說明指出將本機庫存放在那裏,因爲Java本地庫的默認搜索路徑包含當前目錄。或者,您可以將-Djava.library.path=...選項添加到java命令以顯式設置搜索路徑。

當您從Eclipse ...或NetBeans中運行命令時... IDE的啓動程序將設置相應的JVM參數以在搜索路徑中包含項目的本機庫目錄。你需要把庫放在THAT目錄下。 This wiki page解釋了您需要爲NetBeans做什麼。

+0

我將.so,.dll和.jnilib文件放在「工作目錄」(與src文件夾相同的位置)內的名爲snakeLibraries的文件夾內。然後,我右鍵單擊庫文件夾 - >屬性 - >運行,並將其添加到我的VM選項「-Djava.library.path =。/ snakeLibraries」。它編輯像一個冠軍!謝謝您的幫助。 – spuder

5

「工作目錄」是在應用程序工作在...神祕呵呵位置;)

通常它是應用程序的啓動位置,雖然這可以通過標誌等工藝進行修改。

在Netbeans中,工作目錄通常是項目的根目錄(其中包含srcnbproject文件夾),但可以通過項目屬性對其進行更改。

一個發現在運行時的工作目錄(這是用於測試),最簡單的方法是做一些東西一樣......

System.out.println(new File(".").getAbsolutePath()); 
0

它看起來像你真的是在努力do是加載本地庫。試試這個:

public class MainClass { 
    static { 
     System.loadLibrary("Your_native_lib_file_name"); // Note: do not include the file extension! 
    } 
} 

您也可以嘗試-Djava.library.path = /確切/路徑/到/ DIR/

答案從這裏複製: Java can't seem to find my native libraries