Я использую Apache Maven в качестве системы сборки.
Это позволяет мне компилировать программу, но когда я запустите его, он говорит:
Код: Выделить всё
Exception in thread "main" java.lang.NoClassDefFoundError: org.lwjgl/glfw/GLFW
at com.OpenGLTest.app.Main.main(Main.java:25)
Caused by: java.lang.ClassNotFoundException: org.lwjgl.glfw.GLFW
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java.641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
... 1 more
Код: Выделить всё
// Main.java
package com.OpenGLTest.app;
import org.lwjgl.*;
import org.lwjgl.glfw.*;
import org.lwjgl.opengl.*;
import org.lwjgl.system.*;
import java.nio.*;
import static org.lwjgl.glfw.Callbacks.*;
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.system.MemoryStack.*;
import static org.lwjgl.system.MemoryUtil.*;
public class Main {
private static long window;
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final String TITLE = "OpenGL Window";
public static void main(String[] args) {
// CHECK
if (!glfwInit()) {
System.err.println("ERROR: GLFW IS NOT INSTALLED");
System.exit(-1);
}
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_VISIBLE, 0);
glfwWindowHint(GLFW_RESIZABLE, 0);
window = glfwCreateWindow(WIDTH, HEIGHT, TITLE, NULL, NULL);
if (window == NULL) {
System.err.println("ERROR: FAILED TO CREATE GLFW WINDOW");
}
glfwMakeContextCurrent(window);
glfwShowWindow(window);
}
}
Моя JRE — 17.
Прошу прощения, если ответ очевиден.
Каким-то образом единственный ответ, который я нашел в Интернете, это http://forum.lwjgl.org/index.php?topic=6994.0:
Почему я получаете NoClassDefFoundError в Java?
Как решить эту проблему, полностью зависит от того, как вы вызываете команду Java, используете ли вы >IDE и какую из них, используете ли вы Java 9+ Система модулей или путь к классам и >используете ли вы систему сборки Java (например, Maven, Gradle, Ant+Ivy).
Подробнее здесь: https://stackoverflow.com/questions/787 ... -glfw-glfw