Я не верю, что есть что-то встроенное в Java, чтобы сделать это для вас.Опции:
- Написать класс-оболочку, который запускает исходный класс, но также создает поток таймера, чтобы завершить текущий процесс, если он не завершился вовремя.
- Использование возможностей операционной системы
В качестве примера последнего, в bash на Unix-подобных системах вы можете использовать ulimit -t [seconds]
перед запуском процесса.
РЕДАКТИРОВАТЬ: Как отмечалось в комментариях, не ясно, насколько изящным было бы такое отключение с помощью ulimit - будут ли потоки уничтожены достаточно вежливым способом, позволяющим выполнять блоки finally и т. Д. Это, вероятно, стоит проверить.
РЕДАКТИРОВАТЬ: опять же в соответствии с комментариями, ulimit ограничивает время процессора, а не общее время стены.Это может или не может быть тем, что вы ищете - это зависит от того, связан ли ваш процесс с процессором.