[英]Java application stops without any error message or exception
我正在開發一個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
塊,我仍然在命令行上沒有收到任何消息。
您能為我推薦其他方法來找出問題所在嗎?
如果可能,請在該計算機上啟用調試方法。 除此以外。 您可以將一些調試行寫入jar外部的日志文件中。 這樣,您將知道JVM是否調用main方法。 如果您的jar依賴於Windows 7 64位計算機上的特定jre,也請嘗試檢查該計算機上的Java版本。
您的應用程序可能無例外地運行。 但是,它根本無法按預期呈現。
一種簡單的診斷應提供更多信息。 在命令行中添加“ -verbose”開關。 這將打印在應用程序調用期間加載的所有類。
$> java -verbose -jar MyApp.jar
應該顯示一些其他信息。 注意! 確保像我上面演示的那樣,將-verbose添加為第一個參數。
希望這可以幫助您開始。
另外,您可以將System.out.println(“ SOME MESSAGE”)添加為try塊的第一行。 這可能也有幫助。
僅作記錄:我們需要安裝64位版本的JRE,現在該應用程序又像魅力一樣工作了:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.