我正在尝试使用 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();
}
}
我希望输出显示一个窗口,这是真正的输出:
<块引用>线程“main”中的异常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个
答案 0 :(得分:0)
您可能将 lwjgl 的 jar 文件放在模块路径中
我之前遇到过同样的错误,因此要修复此错误,请确保将所有 3 个 jar 文件移动到 Classpath 中,即 lwjgl_util.jar、lwjgl.jar,和 slick-util!
为此,右键单击 MainGameLoop 和 DisplayManager 所在的 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
希望这有帮助!也祝你有美好的一天。