为什么我的代码得到一个 ClassNotFoundException?



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

我尝试使用不同版本的 LWJGL,更改了代码并将所有内容放在一个类中。

'' 显示管理器.java(节选(

private static final int WIDTH = 1280;
private static final int HEIGHT = 720;
private static final int FPS_CAP = 60;
private static final String TITLE = "Our First Display";

public static void createDisplay() {
ContextAttribs attribs = new ContextAttribs(3, 2).withForwardCompatible(true).withProfileCore(true);
try {
Display.setDisplayMode(new DisplayMode(WIDTH, HEIGHT));
Display.create(new PixelFormat(), attribs);
Display.setTitle(TITLE);
} 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(摘录(

public static void main(String[] args) {
DisplayManager.createDisplay();
while (!Display.isCloseRequested()) {

DisplayManager.updateDisplay();
}
DisplayManager.closeDisplay();
}

我希望输出显示一个窗口,这是真正的输出:Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/glfw/GLFW at Main.main(Main.java:8) Caused by: java.lang.ClassNotFoundException: org.lwjgl.glfw.GLFW at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 1 more

我尝试将 JRE 更改为 1.7 而不是 14,它对我有用。哦,是的,当窗口出现时,它可能会闪烁很多。要解决此问题,只需将FPS_CAP更改为 120 而不是 60。

找到包含 org/lwjgl/glfw/GLFW 的 jar,并将其添加到 Eclipse 中的项目的构建路径中。

最新更新