Чтобы подробно остановиться на @jodonnell, можно также получить все отслеживания стека в системе с помощью Thread.getAllStackTraces () . От этого можно искать все отслеживания стека эти main
Поток для определения, каков основной класс. Это будет работать, даже если Ваш класс не будет работать в основном потоке.
Есть GOCR и tesseract , но я не уверен, как складываются их текущие выпуски - как насчет того, чтобы попробовать и то, и другое на некоторых типичных входных данных, с которыми вам нужно иметь дело, и выбрать по этой пробной версии?