9

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

javaOptions in run += "-Djava.library.path=some/common/path:lib/native/linux"

我的问题是:我怎样才能以跨平台的方式做同样的事情,以便我可以与基于 Windows 的开发人员共享我的 build.sbt。到目前为止,我尤其无法弄清楚三件事:

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

1 回答 1

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"

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

于 2014-08-27T13:30:56.873 回答