java - 如何制作不会静默失败的可运行 Jar 程序?

标签 java windows deployment error-handling executable-jar

对于runnable Jar programs我创建,如果我从命令提示符 (java -jar myprogram.jar) 运行它,我可以读取未处理的异常。

示例代码:

public static void main(String args[]) {
    try {
        EntireProgram();
    } catch (Throwable t) {
        throw new Error("somehow our error handling code has errors");
    }
}

public static void EntireProgram() {
    System.out.println(1 / 0);
}

命令行输出:

enter image description here

但是,如果我通过双击 运行 Jar 程序(大多数最终用户的预期),未处理的异常将保持无声。我注意到这与“ native Windows 程序”形成对比,我相信后者具有操作系统默认处理程序(模式对话框消息)处理的未处理异常:

enter image description here

enter image description here enter image description here

以这种方式处理未处理的异常的优点是用户将知道发生了错误(并可能报告它,希望如此)。

我怎样才能让我的程序的未处理异常以这种方式处理?

最佳答案

你为什么不在你的 catch block 中添加这样一行......无论你如何运行你的应用程序,它都会向你显示错误消息。

javax.swing.JOptionPane.showMessageDialog(null,"Something is really wrong..Hence notifying you..");

关于java - 如何制作不会静默失败的可运行 Jar 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952049/

相关文章:

Java toString方法区别

javascript - Window.location.href post参数到actionresult asp.net mvc

docker - 如何管理 kubernetes 服务部署的部署配置(yaml 文件)

deployment - 谁负责部署?

java - For循环在java中显示多个消息框

java - 编译过程中复制文件

java - Twitter4j FilterQuery language() 方法缺失

windows - 如何批量替换目录中的文件 windows vista(从 .txt.txt 到 .txt)

c++ - 编译 zxing 时 Libconv 无法转换参数

php - 部署 Symfony2 应用程序的首选方式是什么?