Java应用程序停止,没有任何错误消息或异常

时间:2014-02-23 13:24:43

标签: java debugging

我正在开发一个Java应用程序,可以在几百台机器上运行,包括Windows和Linux(使用最新的Oracle JRE)。但是,在一台Windows 7 64位计算机上,应用程序将无法运行。

有趣的事实:如果从命令行通过java -jar MyApp.jar启动,则应用程序“刚刚失败”并返回到shell,而根本没有任何消息。

为了找到问题,我将整个内容包装在main()中,如下所示:

public static void main(String [] args)
{
    try
    {
        // Init. Swing GUI, run application ...
    }
    catch(Throwable t)
    {
        t.printStackTrace();
        System.exit(1);
    }
}

不幸的是,即使使用此try-catch块,我仍然无法在命令行上收到任何消息。

您能否建议我找出问题所在的其他方法?

3 个答案:

答案 0 :(得分:0)

如果可能,在该机器上启用调试方法。除此以外。您可以将一些调试行写入jar外部的日志文件中。这样,您就会知道JVM是否调用main方法。 如果你的jar依赖于Windows 7 64位机器上的特定jre,也会尝试检查该机器上的java版本。

答案 1 :(得分:0)

您的应用程序可能无异常运行。但是,它根本无法按预期呈现。

一个简单的诊断应该提供更多信息。在命令行中添加“-verbose”开关。这将打印在应用程序调用期间加载的所有类。

$> java -verbose -jar MyApp.jar

应该显示一些额外的信息。注意!确保你像上面演示的那样添加-verbose作为第一个参数。

希望你开始了。

此外,您可以添加System.out.println(“SOME MESSAGE”)作为try块中的第一行。这可能也有帮助。

答案 2 :(得分:0)

仅供记录:我们需要安装64位版本的JRE,现在应用程序再次像魅力一样工作:)