【问题标题】:Why am I getting this error for my LWJGL program?为什么我的 LWJGL 程序会出现此错误?
【发布时间】:2021-08-11 03:37:51
【问题描述】:

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

我已尝试查找正确的 jar 文件,但无法打开 jar 文件以查看其中包含哪些包。这是我的代码:

DisplayManager.java

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();

   }

}

MainGameLoop.java

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();

   }

}

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

线程“主”java.lang.NoClassDefFoundError 中的异常: 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.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 1 更多

【问题讨论】:

    标签: java eclipse lwjgl


    【解决方案1】:

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

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

    为此,右键单击 MainGameLoopDisplayManager 所在的 Java 项目,然后将鼠标悬停在 构建路径 上,然后然后点击Configure Build Path,进入Libraries,在这里你会看到3个jar文件。如果 jar 文件在模块路径中!将其移动到 Classpath 中,单击 Apply 并关闭,然后就可以了!

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

    希望这会有所帮助!也祝你有美好的一天。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 2019-05-10
      • 2021-03-29
      • 2022-01-04
      • 2018-12-06
      • 2020-07-21
      • 1970-01-01
      相关资源
      最近更新 更多