LibGDX项目编辑器运行正常,打包JAR后导致电脑死机
排查libGDX打包JAR运行死机问题的步骤
先排除代码本身的问题:直接通过Gradle运行桌面模块,执行
./gradlew desktop:run。如果运行时同样死机,说明问题出在游戏代码里,和打包配置无关。大概率是渲染线程里有无限死循环、未做节流的资源创建操作,或是同步锁导致的线程卡死——比如render()方法里写了while(true)且没有休眠逻辑,直接占满CPU导致系统无响应。如果直接运行
desktop:run正常,再排查打包相关问题:- 检查桌面模块的
build.gradle中dist任务的主类配置是否正确,确保主类指向你的DesktopLauncher类,比如:mainClassName = "com.yourgame.desktop.DesktopLauncher" - 尝试用命令行启动JAR文件,而不是双击:打开终端,进入JAR所在目录,执行
java -jar your-game-name.jar。这样如果有异常日志或报错信息,会直接显示在终端里,能帮你定位问题(双击运行时错误信息会被隐藏)。 - 确认打包是否包含了所有依赖:libGDX的
dist任务默认使用shadowJar将所有依赖打包进JAR,但如果配置被修改,可能导致运行时缺失依赖,极端情况下也可能引发异常卡死。
- 检查桌面模块的
额外排查后端配置问题:
- 尝试修改
DesktopLauncher中的窗口配置,比如禁用垂直同步(vSync)、降低窗口分辨率,或者强制使用窗口模式:LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); config.vSyncEnabled = false; config.width = 640; config.height = 480; config.resizable = false; new LwjglApplication(new YourGame(), config); - 如果使用的是Lwjgl2后端,尝试切换到Lwjgl3,后者对新显卡驱动的兼容性更好。
- 尝试修改
内容的提问来源于stack exchange,提问作者pablo
相关产品推荐
相关产品推荐

