java - 当调试器中没有发生崩溃时,如何调试可运行的 jar?

标签 java slick2d

当我在 eclipse 中调试游戏时,游戏运行正常。但是,当我用它制作可运行的 jar 时,当敌人被击中时游戏崩溃,除了那部分之外游戏的其余部分工作正常。我该怎么做,如何调试可运行的 jar?

最佳答案

放一个try/catch围绕敌人被击中的功能。在 catch 语句中,让它打印堆栈跟踪和有关捕获到的异常的信息。

类似于:

try {
   enemyHit();
} catch (Exception e) {
    System.out.print("RuntimeException: ");
    System.out.println(e.getMessage());
    e.printStackTrace();
}

从命令行运行 jar,以便在 jar 崩溃时打印输出仍然存在。或者,将错误信息写入文件。

如果没有捕获到任何东西,您可以将 try/catch 放在堆栈的更上层。如果您没有在其他任何地方捕获异常,则可以将此 try catch 一直放在主循环周围的堆栈顶部。

如果您非常确定错误已解决,我不建议在您的发布代码中保留 try/catch。与 try/catch 相关的性能问题会降低您的游戏速度,如果您将它们放在经常访问的函数周围。

关于java - 当调试器中没有发生崩溃时,如何调试可运行的 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16049267/

相关文章:

java - 将存储在字符串值中的 java 类 macaddress.java 输出传输到 LOGINPAGE.jsp 中的隐藏文本字段 MAC

java - java中如何保护敏感数据

java - 使用大图像的 Slick2D 图形性能问题

java - 如何使用 for 语句在 java 数组中创建多个图像?

使用预增量递归时的 Java 堆栈溢出

java - 为 Scanner 方法编写模式

java - 如何通过React Native中的 Intent 启动并接收另一个应用程序的输出?

java - 我如何在 Slick2D/LWJGL 或一般游戏编程中使用 "delta"?

java - 加载纹理 - 使用 OpenGl、LWJGL 和 SlickUtil

java - slick2d(lwjgl)、nifty、kryonet - 如何构建 .jar?