2012-05-17 96 views
2

以下代碼在從java命令行運行時工作正常。然而,當運行使用exec:java我從來沒有看到該行打印...無論如何,以阻止這種行爲?Maven exec:java和UncaughtExceptionHandler

public static void main(String[] args) throws InterruptedException { 
    Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { 

     @Override 
     public void uncaughtException(Thread t, Throwable e) { 
      System.out.println("Uncaught exception: " + e.getMessage()); 

     } 
    }); 

    Executors.newSingleThreadExecutor().execute(new Runnable() { 

     @Override 
     public void run() { 
      int i = 1/0; 

     } 
    }); 
    Thread.sleep(1000); 
    System.exit(0); 
} 
+1

也許你可以發佈你的pom.xml? – Attila

+0

你可以嘗試添加'-e'標誌到mvn調用嗎? –

回答

2

我的假設是默認的UncaughtExceptionHandler被Maven本身覆蓋。

usage guide

注意:Java的目標不會產生新的進程[...],否則考慮使用exec目標。

+1

是的exec目標適用於我(打印「未捕獲的異常」消息) – wytten

相關問題