当前位置: 首页 > 知识库问答 >
问题:

为什么我的LWJGL程序会出现这个错误?

锺霍英
2023-03-14

我正在尝试用Java制作一个与OpenGL(使用LWJGL 2)的窗口。当我尝试运行时,Eclipse BuiltInclassLoader出现了ClassNotFoundException错误。

package renderEngine;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.PixelFormat;
import org.lwjgl.opengl.ContextAttribs;

public class DisplayManager {

   private static final int WIDTH = 1280;
   private static final int HEIGHT = 720;
   private static final int FPS_CAP = 120;

   public static void createDisplay(){

      ContextAttribs attribs = new ContextAttribs(3, 2);
      attribs.withForwardCompatible(true);
      attribs.withProfileCore(true);

      try{
          Display.setDisplayMode(new DisplayMode(WIDTH, 
          HEIGHT))
          Display.create(new PixelFormat(), attribs);
      }catch(LWJGLException e){
         e.printStackTrace();
      }

      GL11.glViewport(0, 0, WIDTH, HEIGHT);

   }

   public static void updateDisplay(){
      Display.sync(FPS_CAP);
      Display.update();

   }

   public static void closeDisplay(){

      Display.destroy();

   }

}
package engineTester;

import org.lwjgl.opengl.Display;

import renderEngine.DisplayManager;

public class MainGameLoop {

   public static void main(String[] args) {

      DisplayManager.createDisplay();

      while(!Display.isCloseRequested()){

         DisplayManager.updateDisplay();

      }

      DisplayManager.closeDisplay();

   }

}

我期望输出显示一个窗口,这是真正的输出:

线程“main”java.lang.noClassDeffounder中的异常错误:org/lwjgl/lwjglexception在enginetester.maingameloop.main(maingameloop.java:11)由:java.lang.classnotfoundexception:org.lwjgl.lwjglexception在java.base/jdk.internal.loader.builtinclassloader.loadclass(builtinclassloader.java:606)在java.base/jdk.internal.loader.classloader.java:168)在java.base/java.lang.classloader.loadclass(classloader.java:522)...还有1个

共有1个答案

朱典
2023-03-14

您可能会将lwjgl的jar文件放在模块路径中

我以前也遇到过同样的错误,所以要修复这个错误,请确保将所有3个jar文件移动到类路径中,即lwjgl_util.jar、lwjgl.jar和slick-util!

为此,右键单击MainGameLoop和DisplayManager所在的Java项目,然后将鼠标悬停到构建路径中,然后单击Configure build path,转到Libraries,您将看到3个jar文件。如果jar文件在模块路径中!将其移到类路径中,单击Apply并关闭,然后您就应该很好了!

如果问题仍然没有修复!那么您可能拥有Java Runtime Environment(JRE)1.7或更低的版本!如果是这样,您可以在这里下载JRE 1.8:https://www.oracle.com/java/technologies/javase-jre8-downloads.html

希望这有帮助!也祝你有个愉快的一天。

 类似资料:
  • 为什么会引发主线程上的网络异常?its在异步任务上 } 编辑: 完整代码: logcat:

  • 我已经花了一个多小时试图解决这个问题,但我什么都没做。 当我试图使用Maven编译我的项目时,我得到了以下错误: [错误]无法执行目标组织。阿帕奇。专家插件:maven assembly插件:2.2-beta-5:single(默认cli)在GankALane项目上:无法解析mojo org的配置。阿帕奇。专家插件:maven assembly插件:2.2-beta-5:单参数存档:在组织中找不到

  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

  • 我正在尝试使用Minikube、Docker注册表和演示节点项目创建本地库伯内特斯部署。 我做的第一件事是安装Docker v1.12.3,然后是Minikube v0.12.2。 然后,我通过运行这个命令创建了一个Docker注册表容器(通过本教程,只运行下面的第一个命令) 接下来,我运行这个minikube命令来创建本地kubernetes集群: 我的项目结构如下所示: 我的Dockerfil

  • 我得到这个问题在Leetcode:https://leetcode.com/problems/reverse-bits/ 所以输入将是一个十进制整数,我必须把它变成二进制32位。 然后我把它倒过来,回到小数点。 例如: 输入: 输出: 这是我的代码: 如果我运行此代码在Leetcode在线法官,我会得到这个错误: 此错误由输入0引发。 我不知道为什么会出现这个错误。我的代码似乎运行良好!