创建TrueTypeFont时的NoClassDefFoundError(SlickUtil)

时间:2017-07-02 00:12:21

标签: java slick2d

我得到的错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/newdawn/slick/opengl/renderer/Renderer
    at org.newdawn.slick.TrueTypeFont.<clinit>(TrueTypeFont.java:28)
    at Text.init(Text.java:14)
    at Main.main(Main.java:78)
Caused by: java.lang.ClassNotFoundException: org.newdawn.slick.opengl.renderer.Renderer
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more

文字课

public static Font font;
public static TrueTypeFont uf;

public static void init () {

    font = new Font("Times New Roman", Font.BOLD, 20);
    uf = new TrueTypeFont(font, true); // Throws the error

}

public static void render (String text) {

    uf.drawString(0, 0, text);

}

org.newdawn.slick.opengl.renderer.Renderer存在于源中,因此已定义。 (如果我是对的)

为什么会抛出此错误,我该怎么办呢? 是否有方法使用OpenGL显示2D文本而不使用SlickUtil

1 个答案:

答案 0 :(得分:0)

  

为什么会抛出此错误,我该怎么办呢?

它被抛出,因为包含该依赖项的JAR文件不在运行时类路径上。 (显然,在编译应用程序时可以使用JAR文件。如果它不是,那么引用该类的源代码就不会被编译。)

您需要做的是查找/识别JAR文件,并将其添加到应用程序的运行时类路径中。

  

是否有方法在不使用SlickUtil的情况下使用OpenGL显示2D文本?

这是我们为您寻找或推荐软件的请求。这是偏离主题的。

并且没有实际意义......如果你用类路径解决真正的问题。