使JNI路径在SBT中工作

时间:2015-12-15 10:49:48

标签: java scala java-native-interface 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
  • [不起作用]在Idea中: 环境变量: java.library.path 设置为 [我的路径]
    我得到UnsatisfiedLinkError: \\ad\.....\nag_jni.dll: Can't find dependent libraries
  • [作品]在想法中:
    环境变量:路径设置为 [我的路径]
  • [不工作°_°]在SBT中:
    ThisBuild中的 envVars:=地图(“路径” - > [我的路径])
    我得到UnsatisfiedLinkError: no nag_jni in java.library.path
  • [不起作用]在SBT中:
    ThisBuild中的 envVars:= Map(“java.library.path” - > [我的路径])
    我得到UnsatisfiedLinkError: no nag_jni in java.library.path
  • [不起作用]在SBT中:
    ThisBuild中的javaOptions + =“ - Dpath = [我的路径]”
    我得到UnsatisfiedLinkError: no nag_jni in java.library.path
  • [不起作用]在SBT中:
    ThisBuild中的javaOptions + =“ - Djava.library.path = [我的路径]”
    我得到UnsatisfiedLinkError: \\ad\.....\nag_jni.dll: Can't find dependent libraries

因此,如果它在Idea中的一个案例中起作用,这意味着我的路径是好的,那么为什么它在SBT中不起作用?

干杯

1 个答案:

答案 0 :(得分:0)

看起来您的所有尝试主要是在构建时修改java.library.path。但是,您可能希望在运行时设置它。实际上,在运行时设置它不能由SBT控制,因为它取决于如何使用生成的包。

如果您只是想在sbt run期间设置它,build.sbt中的此类内容对我来说效果很好:

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