SBT:设置java.library.path的跨平台方式?

blu*_*e10 9 scala native sbt java.library.path

我正在开发一个需要加载本机库的项目,到目前为止,所有开发仅限于Linux.为了run我的项目,我可以简单地启用分叉和修改java.library.path如下:

javaOptions in run += "-Djava.library.path=some/common/path:lib/native/linux"
Run Code Online (Sandbox Code Playgroud)

我的问题是:我如何以跨平台的方式做同样的事情,以便我可以与基于Windows的开发人员共享我的build.sbt.到目前为止,我还有三件事情无法解决:

  • 我知道SBT允许构建与平台无关的路径"dir1" / "dir2",但是我不知道加入多个路径的跨平台方式(因为它:在Linux和;Windows上).
  • 是否可以追加lib/native/linux lib/native/windows依赖于平台?
  • 我上面的方法会覆盖java.library.path- 是否可以追加?

Ale*_*nov 5

既然你可以使用任何Scala代码,你当然可以

val folderName =
  if (System.getProperty("os.name").startsWith("Windows")) "windows" else "linux"

val libPath = Seq("some/common/path", s"lib/native/$folderName").mkString(java.io.File.pathSeparator)

javaOptions in run += s"-Djava.library.path=$libPath"
Run Code Online (Sandbox Code Playgroud)

虽然这不能回答你的最后一个问题.

  • 怎么样`System.getProperty("java.library.path")`并自己连接? (2认同)