2015-12-15 55 views
1

我試圖讓JNI路徑工作SBT工作,所以我嘗試了以下組合:使JNI路徑在SBT

  • [不工作在理念:
    VM選項:- Djava.library.path = [我的路徑]
    我得到了UnsatisfiedLinkError: \\ad\.....\nag_jni.dll: Can't find dependent libraries
  • [不工作在理念:
    VM選項:-Dpath = [我的路徑]
    我得到一個UnsatisfiedLinkError: no nag_jni in java.library.path
  • [不工作在理念: 環境變量:的java.library.path設置爲[我的路徑]
    我得到了UnsatisfiedLinkError: \\ad\.....\nag_jni.dll: Can't find dependent libraries
  • [作品在理念:
    環境變量:路徑設置爲[我的路徑]
  • [不上班°_°在SBT:在ThisBui
    envvars中LD:=地圖( 「路徑」 - > [我的路徑])
    我得到一個UnsatisfiedLinkError: no nag_jni in java.library.path
  • [不工作在SBT:
    envvars中在ThisBuild:=地圖(「的java.library.path 「 - > [我的路徑])
    我得到一個UnsatisfiedLinkError: no nag_jni in java.library.path
  • [不工作在SBT:在ThisBuild
    javaOptions + =‘-Dpath = [我的路徑]’
    我得到一個UnsatisfiedLinkError: no nag_jni in java.library.path
  • [Do esn't工作在SBT:
    javaOptions在ThisBuild + =「-Djava.library.path = [我的路徑]」
    我得到了UnsatisfiedLinkError: \\ad\.....\nag_jni.dll: Can't find dependent libraries

所以,如果它在一個情況下,這意味着我的道路是好的,那麼爲什麼它不能在SBT中工作?

乾杯

+0

你可以讓我知道爲什麼downvote已經給出? – Joan

+0

何時使用路徑?您是在詢問關於何時啓動您的應用程序,或者在構建過程本身期間?如果是前者,請指定你如何啓動應用程序('sbt run'?),因爲有幾個不同的選項。如果是後者,請將其作爲使用JNI的構建步驟進行評論非常不尋常。 – Rich

+0

所有異常都在運行時發生。彙編很好。我正在使用'sbt runMain'。我編輯了一些例外的問題,因爲它們在某些步驟中有所不同。非常感謝您的幫助。 – Joan

回答

0

它看起來像你所有的努力主要涉及在製作的時候修改java.library.path。但是,您可能希望在運行時進行設置。實際上,在運行時設置它不能由SBT控制,因爲它取決於如何使用生成的程序包

如果你只是想在sbt run來進行設置,這樣的事情在build.sbt是爲我工作的罰款:

fork in run := true 
javaOptions in run += "-Djava.library.path=lib/native"