2012-05-17 3 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