为什么在进行gradle运行时lwjgl会从类路径中丢失?

时间:2012-03-31 23:30:55

标签: classpath gradle lwjgl

任何人都可以帮助我正确包括lwjgl吗?似乎依赖性被忽略了,因为当我进行gradle运行时,java无法找到该库。

我有以下maven文件:

apply plugin:'groovy'
apply plugin:'application'

mainClassName = 'com.martz.zimplatformer.Game'

repositories {
    mavenCentral()
}

dependencies {
    groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.6'
    compile group: 'org.lwjgl.lwjgl', name: 'lwjgl', version: '2.+'
}

当我进行gradle运行时,我得到以下堆栈跟踪:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at org.lwjgl.Sys$1.run(Sys.java:73)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
    at org.lwjgl.Sys.loadLibrary(Sys.java:95)
    at org.lwjgl.Sys.<clinit>(Sys.java:112)
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135)

1 个答案:

答案 0 :(得分:1)

显然错误是由于java无法找到本机库。 maven中存在lwjgl平台依赖关系,但只是添加它并不会将jvm指向正确的本机库。我从lwjgl网站下载本机库后,通过向我机器上的本机库添加硬编码路径来实现它:

run {
    jvmArgs = '-Djava.library.path=/path/to/native/macosx'
}