#java #lwjgl #noclassdeffounderror
#java #lwjgl #ошибка noclassdeffounderror
Вопрос:
Я только начинаю изучать LWJGL3, но по какой-то причине импорт не работает. Я попробовал 2 способа установки LWJGL3, в первый раз я следовал видеоуроку, во второй раз я установил его так, как мне было указано в официальном руководстве по установке (Руководство). Все банки, поставляемые с LWJGL3, включены в системную библиотеку JRE. Ошибка появляется, как только я пытаюсь использовать glfw.
Изображение моего рабочего пространства
Код:
import static org.lwjgl.glfw.GLFW.*;
import org.lwjgl.glfw.GLFWVidMode;
public class Main {
public static void main(String[] args) {
if (!glfwInit()) {
throw new IllegalStateException("Failed to initialise GLFW");
}
glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
long window = glfwCreateWindow(640, 480, "LWJGL Porgramme", glfwGetPrimaryMonitor(), 0);
if(window == 0) {
throw new IllegalStateException("Failed to create window");
}
GLFWVidMode videoMode = glfwGetVideoMode(glfwGetPrimaryMonitor());
glfwSetWindowPos(window, (videoMode.width() - 640) / 2, (videoMode.height() - 480)/ 2);
glfwShowWindow(window);
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
}
}
}
Ошибка:
Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/glfw/GLFW
at Main.main(Main.java:6)
Caused by: java.lang.ClassNotFoundException: org.lwjgl.glfw.GLFW
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more
Редактировать: загрузчик классов не может загрузить класс, но я не знаю, почему он не может загрузить класс, поскольку он добавлен во «внешние банки». Изображение
Комментарии:
1. Не могли бы вы уточнить «включены в системную библиотеку JRE». Если у вас нет более простых вариантов, вы должны иметь возможность 1) распечатать путь к классу в модуле, который пытается импортировать (используя загрузчик классов этого модуля / класса), 2) подтвердить, что jar, в котором, по вашему мнению, находится рассматриваемый класс, действительно находится на пути к классу, 3)распакуйте jar и убедитесь, что класс действительно находится там, с правильным полным именем. Есть ли у вас какие-либо другие установленные вами библиотеки, к которым вы могли бы попытаться получить доступ, чтобы определить, является ли проблема этой конкретной библиотекой или не встроенными библиотеками в целом
2. Я предполагаю, что ваш код компилируется. Это означало бы, что конфигурация «сборки» в вашей IDE верна. Так что сравните это с вашей конфигурацией запуска. Используете ли вы Intellij в качестве IDE?
3. Я использую Eclipse в качестве своей среды разработки.
4. Стив, говоря «включены в системную библиотеку JRE», я имел в виду, что я добавил их во «внешние банки», в путь сборки. И я не вижу никаких других библиотек, которые я установил.
5. Какая версия Eclipse и какая версия java?
Ответ №1:
Это заняло слишком много времени, но я заставил его работать. Я установил LWJGL3 с помощью Gradle, создал проект Gradle и скопировал исходный код Java в проект Gradle.