OpenGL в Java на NetBeans: NoClassDefFoundError - PullRequest
0 голосов
/ 30 ноября 2011

Я на Mac под управлением Netbeans 6.9.Я скачал и установил LWJGL, используя это руководство вплоть до буквы: http://lwjgl.org/wiki/index.php?title=Setting_Up_LWJGL_with_NetBeans

Я закончил установку и скопировал пример кода, чтобы проверить, работает ли моя система.Я получил ошибку и не был уверен, что это из-за неисправного кода или я что-то делал не так.Поэтому я сократил код до этого небольшого простого бита:

package javaopengl;

import org.lwjgl.Sys;
import org.lwjgl.opengl.Display;

//Testing

public class Main {

    public static void main(String[] args) {
        boolean fullscreen = (args.length == 1 && args[0].equals("-fullscreen"));

        try {
            Display.create();
            Display.destroy();
        } catch (Exception e) {
            e.printStackTrace(System.err);
        }
        System.exit(0);
    }
}

Но я все еще получаю ту же ошибку:

run:
Exception in thread "main" java.lang.NoClassDefFoundError: =
Caused by: java.lang.ClassNotFoundException: =
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

Я не уверен, что именно происходит, выСкажите, пожалуйста, что происходит и как это исправить?

Примечание. При просмотре текста в среде разработки не отображаются эти красные линии, указывающие на наличие ошибок.

1 Ответ

1 голос
/ 30 ноября 2011

Что вы печатаете (или работает netbeans), чтобы запустить это?Поскольку файловая система Mac довольно независима от регистра, если не указано иное, при запуске java javaopengl.main будет найден файл main.java, который там есть (будет возвращен файл Main.java).Но класс Main, и вы можете получить это исключение из разницы.Если это выполняется из скрипта ant, я рекомендую убедиться, что вы используете правильную прописную букву (класс должен быть javaopengl.Main).Простой способ проверить это состоит в том, чтобы удалить все, кроме определения класса и пустого public static void main(String[] args) {}

В качестве альтернативы, вы можете получить что-то более простое, например, ваш путь к классу из строя.Отсутствие банки lwjgl приведет вас туда, но если вы будете следовать указаниям в этом уроке, это на самом деле кажется менее вероятным.Тем не менее, вы можете проверить это.

package javaopengl;

public class Main {
  public static void main(String[] args) {
    System.out.println("well, main works");
    Class checkjar = Class.forName("org.lwjgl.opengl.Display");
    System.out.println("My ClassLoader found: " + checkjar.getCanonicalName());
  }
}

Кроме того, удалите import org.lwjgl.Sys; из сокращенного примера.Кажется, он не нужен, если это не источник ваших проблем:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...