【问题标题】:UnsatisfiedLinkError after changing Eclipse workspace更改 Eclipse 工作区后出现 UnsatisfiedLinkError
【发布时间】:2013-05-11 21:33:39
【问题描述】:

我一直在使用 lwjgl 和 Slick2D 库来完成我的工作。在某些时候,我需要将我的 Minecraft Bukkit 插件与我的其他 Java 程序分开,所以我将 Java 程序移动到另一个工作区。但是,在这样做之后,我使用上述库的项目无法工作,并出现错误:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 lwjgl

堆栈跟踪指向我在 main() 块中初始化 AppGameContainer 的位置:

AppGameContainer appgc;
    try{
        appgc = new AppGameContainer(new Game(gamename)); // <-- This line
        appgc.setDisplayMode(800, 600, false);
        appgc.setTargetFrameRate(FPS);
        appgc.start();
    }catch(SlickException ex){
        ex.printStackTrace();
    }

该程序在工作区迁移之前编译并运行得非常好,除了工作区位置之外没有任何变化。我已经删除并重新添加了库 jars(通过添加 JAR,而不是添加外部 JAR,jar 文件在 /lib/jars/ 中,就像以前一样,相对于项目)。我什至尝试将它们重新添加为外部罐子,但仍然没有运气。编译器在尝试运行程序之前不会报告任何错误。

【问题讨论】:

    标签: java eclipse lwjgl unsatisfiedlinkerror slick


    【解决方案1】:

    您是否检查了项目选项的部署程序集类别(假设您正在使用具有该类别的项目类型)? 您可能更新了编译时引用,但没有更新运行时引用。

    【讨论】:

    • 不确定如何在 Eclipse O.o 中检查/设置项目类型甚至不知道编译/运行有单独的引用。
    【解决方案2】:

    当你移动 java 程序时,你可能没有移动那些告诉你的开发程序本地人在哪里的文件。

    appgc = new AppGameContainer(new Game(gamename)); //<-- This line 
    

    最有可能抛出 UnsatisfiedLinkError 是因为 LWJGL/Slick 没有初始化 AppGameContainer 所需的本机。尝试链接本地人。

    Linking natives in Eclipse

    Linking natives in Netbeans

    【讨论】:

      猜你喜欢
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      相关资源
      最近更新 更多