自动将libraryDependencies(natives)移动到Java的Library Path或将Library Path设置为依赖项的位置

时间:2015-10-11 06:39:58

标签: java scala sbt nativelibrary library-path

我来这里寻求帮助自动化一个过程我没有看到任何其他解决方案而不是手动执行。

在我的一个项目中,我有以下依赖项:

libraryDependencies ++= Seq(
    "org.lwjgl" % "lwjgl" % "3.0.0a",
    "org.lwjgl" % "lwjgl-platform" % "3.0.0a" classifier "natives-windows" classifier "natives-linux" classifier "natives-osx"
)

这会下载每个平台的实际.jar和本机。以这种方式发展是没有问题的。所有的依赖都在那里,所有的类都被找到了。

正在编译并运行该应用程序结果是主要的问题,正如您所获得的那样:

  

java.lang.UnsatisfiedLinkError:java.library.path中没有lwjgl

现在我做的不仅仅是次优,它实际上违背了使用托管库的全部目的:我手动将jar和本机复制到lib目录,这是(默认情况下)sbt默认位置对于非托管库。

但如果我手动移动它,我也可以手动下载它并将其完全从sbt文件中删除。不是我想做的事。

如何自动完成此过程?一般来说,我想到了两个想法,但不知道如何正确地将它们翻译为sbt

  1. 自动将-Djava.library.path设置为路径 依赖关系位于。这条路径不同于操作系统和操作系统 当然,我希望能够将项目实际导出为 有一天 runnable jar;)没有重大缺点或再次复制。
  2. 执行我现在的操作,但会自动执行:因此,请将依赖项移至lib - 文件夹。
  3. 我不可能是唯一一个与此斗争的人(或者好吧,也许我是)但我发现的只有两个“解决方案”:

    1. “手动执行”:Can't get LWJGL to run using IDEA and SBT我 - 正如长度所指出 - 发现真的(少于)次优
    2. 使用https://github.com/philcali/sbt-lwjgl-plugin,但是:
    3.   

      目前不支持SBT版本0.13。

      远远低于次优(再次):(

      还有什么想法吗?我无法想象没有人必须与当地人打交道!

0 个答案:

没有答案