jmap - это стандартная утилита java, которую вы можете использовать для сбора дампов кучи и статистики. Я не могу сказать, какой протокол используется jmap для подключения к JVM для получения этой информации, и неясно, доступна ли эта информация программе, работающей в JVM напрямую (хотя я уверен, что программа может запросить ее JVM через какую-то розетку, чтобы получить эту информацию).
JVM TI - это интерфейс инструмента, используемый кодом C, и он имеет практически полный доступ к работе JVM, но это код C, который не доступен непосредственно JVM. Возможно, вы могли бы написать C lib и затем взаимодействовать с ним, но ничего из коробки не было.
Существует несколько MBean-компонентов JMX, но я не думаю, что какие-либо из них предоставляют фактическое количество объектов. Из них вы можете получить статистику памяти (именно это использует JConsole). Ознакомьтесь с классами java.lang.management.
Если вам нужен быстрый (простой в реализации, не обязательно быстрый результат, поскольку jmap занимает некоторое время), я бы отключил прогон jmap и просто прочитал получившийся файл.