Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
路径中没有lwjgl64的Java错误?_Java_Eclipse_Jar_Lwjgl - Fatal编程技术网

路径中没有lwjgl64的Java错误?

路径中没有lwjgl64的Java错误?,java,eclipse,jar,lwjgl,Java,Eclipse,Jar,Lwjgl,我正在尝试制作一个游戏,它在eclipse中运行良好,但当我将其导出并作为jar文件运行时,会出现此错误 Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Sou

我正在尝试制作一个游戏,它在eclipse中运行良好,但当我将其导出并作为jar文件运行时,会出现此错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at org.lwjgl.Sys$1.run(Sys.java:72)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
    at org.lwjgl.Sys.loadLibrary(Sys.java:87)
    at org.lwjgl.Sys.<clinit>(Sys.java:117)
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
    at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)
    at ultra.game.core.MainGame.main(MainGame.java:1827)
线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有lwjgl64 位于java.lang.ClassLoader.loadLibrary(未知源) 位于java.lang.Runtime.loadLibrary0(未知源) 位于java.lang.System.loadLibrary(未知源) 位于org.lwjgl.Sys$1.run(Sys.java:72) 位于java.security.AccessController.doPrivileged(本机方法) 位于org.lwjgl.Sys.doLoadLibrary(Sys.java:66) 位于org.lwjgl.Sys.loadLibrary(Sys.java:87) 位于org.lwjgl.Sys(Sys.java:117) 在org.lwjgl.opengl.Display上(Display.java:135) 位于org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39) 位于java.security.AccessController.doPrivileged(本机方法) 位于org.newdawn.slick.AppGameContainer(AppGameContainer.java:36) 位于ultra.game.core.MainGame.main(MainGame.java:1827)
我试过很多东西。我将本机位置设置为本机文件夹,并在其中进行了检查,lwjgl64位于其中。有什么帮助吗

这意味着您在某个位置没有名为“lwjgl64”的本机库,以便Java可以找到并加载它,或者您正在使用32位JVM,并且您正在尝试加载64位本机库(反之亦然)-如果您要使用本机库,它们必须与您正在使用的JVM具有相同的“位性”

在Windows上,本机库将位于文件
lwjgl64.dll
;在Mac OS X或其他类似Unix的系统上,它应该是
lwjgl64.so
。查找此文件,然后在启动程序时使用
-D
选项设置系统属性
java.library.path
,例如:

java -Djava.library.path=C:\MyProject\lib com.mypackage.MyProgram

其中
C:\MyProject\lib
将是包含DLL的目录。

LWJGL使用自己的变量作为本机库的路径:

System.setProperty("org.lwjgl.librarypath", new File("pathToNatives").getAbsolutePath());
如果保留LWJGL包中的文件结构,则可以使用如下内容:

switch(LWJGLUtil.getPlatform())
{
    case LWJGLUtil.PLATFORM_WINDOWS:
    {
        JGLLib = new File("./native/windows/");
    }
    break;

    case LWJGLUtil.PLATFORM_LINUX:
    {
        JGLLib = new File("./native/linux/");
    }
    break;

    case LWJGLUtil.PLATFORM_MACOSX:
    {
        JGLLib = new File("./native/macosx/");
    }
    break;
}

System.setProperty("org.lwjgl.librarypath", JGLLib.getAbsolutePath());