2011-11-29 46 views
-1

我在运行Netbeans 6.9的Mac上。 我下载并使用本教程下来信安装LWJGL: http://lwjgl.org/wiki/index.php?title=Setting_Up_LWJGL_with_NetBeansNetbeans上的Java OpenGL:NoClassDefFoundError

我完成了安装和复制示例代码,看看如果我的系统工作。我有一个错误,并不确定是因为错误的代码还是我做错了什么。所以我缩短下来的代码这一点简单的一点:

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) 

我不知道究竟是怎么回事,请你告诉我什么正在进行以及如何解决它?

注意:当我在开发环境中查看文本时,它不显示那些红线表示存在任何错误。

+0

我不熟悉Java上的openGL,但看起来它没有找到类文件。在第六步中,在Netbeans中设置LWJGL(从你的链接),我会仔细检查你选择了所有正确的jar文件和你记得将库添加到你的Libraries文件夹。 – ghostbust555

+0

您发布的堆栈跟踪中似乎没有异常消息 - 它可能有助于了解哪些类丢失。 – millimoose

+0

我将如何找出哪些课程缺失?我三重检查了所有的类路径,我100%确定它们匹配并且是正确的文件。我发布了一切,并了解这个问题。还有什么我需要设置?有没有办法阻止它加载文件?有什么建议去哪里获得帮助? –

回答

1

你在键入什么(或什么是netbeans运行)来运行它?由于Mac文件系统相当不区分大小写,除非您另有指定,否则运行java javaopengl.main将查找main.java文件(将返回Main.java)。但是这个班是Main,你可以从这个差异中得到这个例外。如果这是从一个蚂蚁脚本运行,我建议确保你有正确的大写(该类应该是javaopengl.Main)。测试这种方法的一个简单方法是删除除类定义之外的所有内容,并且删除所有内容。​​

或者,您可以更简单一些,比如您的类路径出错。丢失lwjgl jar会让你在那里,但如果你按照教程中的指示,那实际上似乎不太可能。不过,你可以测试这个。

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;。它似乎并不需要,只要它不是你的问题的根源:)。

+0

我正在这样做...... –

+0

我跑了,得到了同样的错误,意识到我甚至没有看到“好,主要作品”的输出。我将其剥离为: package javaopengl; public class Main {public static void main(String [] args){System.out.println(“well,main works”); } } 现在即使我从目录中删除库,它也会给我那个错误。有些奇怪的事情正在发生。 P.S.非常感谢你帮助我 –

+0

如果你有一个包含所有罐子的目录,你也可以试试这个:'for f in *;做jar -tf $ f | grep显示;完成“,并确保确切的类在那里(一些库喜欢在不同版本之间重命名包),并确保适当的jar确实在类路径中。 – ccoakley