2015-12-15 36 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"