无法让LWJGL使用IDEA和SBT运行

Ele*_*fee 6 dependencies scala intellij-idea lwjgl

我一直在头脑中挣扎了一个多小时,谷歌似乎无法给我一个决定性的答案.

我正在使用IntelliJ IDEA 13.1.3scala和sbt插件Scala 2.11.1,和SBT 0.13

我认为我很聪明,我将LWJGL的Maven存储库添加到了我的build.sbt中

libraryDependencies += "org.lwjgl.lwjgl" % "lwjgl" % "2.9.1"
Run Code Online (Sandbox Code Playgroud)

后来发现我需要[ 将编译器指向LWJGL原生 ].

现在问题是:要求SBT下载库,不要将它们放在任何项目的目录中,这使得指向库有点困难.

我尝试使用[ sbt-lwjgl-plugin ]没有任何运气,甚至强迫像文档建议的早期版本的SBT.

所以我发现自己处于僵局,我该怎么办?手动下载库并将其转储到项目目录中?或者我有更自动的方式来处理这个问题?

Mne*_*nth 1

我知道这有点老了,但我认为这可能会对遇到此问题的其他人有所帮助。我自己所做的就是从网站下载 jar 文件,从 jar 中提取本机并将它们添加到我的资源目录中。至于 lwjgl 我将它添加到我的 sbt 项目中,就像你一样。在运行时,我从 jar 中提取了本机并使用加载本机库

System.load("<native-library-name>")
Run Code Online (Sandbox Code Playgroud)

然后使用lwjgl设置natives目录

System.setProperty("org.lwjgl.librarypath", <natives-path>)
Run Code Online (Sandbox Code Playgroud)

另外,对于在运行时从 jar 文件中提取本机,你可以这样做

val source = Channels.newChannel(
NativesLoader.getClass.getClassLoader.getResourceAsStream("<native>"))

val fileOut = new File(<desination directory>, "<native path in jar>")
val dest = new FileOutputStream(fileOut)
dest.getChannel.transferFrom(source, 0, Long.MaxValue)
source.close()
dest.close()
Run Code Online (Sandbox Code Playgroud)