Ele*_*fee 6 dependencies scala intellij-idea lwjgl
我一直在头脑中挣扎了一个多小时,谷歌似乎无法给我一个决定性的答案.
我正在使用IntelliJ IDEA 13.1.3
scala和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.
所以我发现自己处于僵局,我该怎么办?手动下载库并将其转储到项目目录中?或者我有更自动的方式来处理这个问题?
我知道这有点老了,但我认为这可能会对遇到此问题的其他人有所帮助。我自己所做的就是从网站下载 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)