【发布时间】: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 更多
【问题讨论】: