JStack довольно недорог - одна опция состояла бы в том, чтобы передать вывод по каналу через grep, чтобы найти активные потоки и затем передать по каналу через туалет-l.
более графически JConsole, который отображается, поток значат данный процесс.
Более новые дистрибутивы JDK поставлются с JConsole и VisualVM. Оба - фантастические инструменты для получения грязных деталей от рабочего процесса Java. Если необходимо сделать это программно, исследовать JMX.