我正在用
打包jar文件gradlew desktop:dist
在使用Java 1.8(openjdk)运行它时
java -jar desktop-1-0.jar
会抛出FreeTypeFontGenerator类的ClassNotFoundException。整个Stacktrace如下
java -jar desktop-1.0.jar Picked up _JAVA_OPTIONS: -Xmx512M Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoClassDefFoundError: com/badlogic/gdx/graphics/g2d/freetype/FreeTypeFontGenerator at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:135) Caused by: java.lang.NoClassDefFoundError: com/badlogic/gdx/graphics/g2d/freetype/FreeTypeFontGenerator at com.mygdx.tools.FontLoader.loadFont(FontLoader.java:13) at com.mygdx.stages.hud.ClientHud.(ClientHud.java:42) at com.mygdx.stages.hud.StartmenuHud.joinButtonClicked(StartmenuHud.java:67) at com.mygdx.stages.hud.StartmenuHud.access$100(StartmenuHud.java:16) at com.mygdx.stages.hud.StartmenuHud$2.touchDown(StartmenuHud.java:47) at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:57) at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188) at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:158) at com.badlogic.gdx.scenes.scene2d.Stage.touchDown(Stage.java:281) at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:357) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:221) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:128) Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 12 more
我已经在libgdx wiki中描述了FreeTypeFont项目根目录下的build.gradle文件中包含必需的依赖项。
我还刷新了项目依赖关系(右键单击项目-> Gradle->刷新Gradle依赖关系) 并重建项目。
答案 0 :(得分:1)
对我来说,解决方案是添加
implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
在build.gradle文件的桌面部分下。 我尝试了此操作,因为controler模块的导入看上去有点相似。
我不知道为什么没有对此进行记录,但是在刷新所有gradle依赖项(右键单击项目-> Gradle->刷新Gradle依赖关系)并重建项目后,我能够运行打包的jar没有任何问题。