OP: На самом деле это не так.
Simon: Jconsole является побочным аргументом в пользу того, что на самом деле является разницей между java и .net. Java легко представляет пользовательскую информацию, которая .net запутывается. Возможно, из-за их разных идеологий и целей java спроектирована как обычная виртуальная среда, которая работает на любом хосте os, где .net в основном спроектирован с учетом окон.
. Чистые процессы не предназначены для работы в неоднозначном вакууме; они запускаются как службы компонентов или части iis, и они запускаются на окнах, поэтому виртуальная среда не предусматривает предоставление удаленного мониторинга, потому что вы получите некоторую степень бесплатности от wmi.
Java не работает таким образом, потому что java не может делать какие-либо предположения о базовых os или о том, какую информацию он будет предоставлять, и что бы ни делала java для всех систем. Таким образом, Java предоставляет огромное количество данных о своей памяти и активности потоков для пользователя и предоставляет инфраструктуру для обработки и обнаружения управляемых объектов в пользовательском коде (mbeans). Jconsole и jvisualvm позволяют удаленному подключению к java-процессу (локально или через сеть с jmx, хотя jmx требует, чтобы флаг был активен в целевом Java-процессе), а затем они могут видеть все эти данные и просматривать все доступные MBeans. Кроме того, все это основная функциональность, и программы бесплатны.
.Net flat out нет этого. Именно разработчик с самого начала создает удаленное управление в своем коде приложения, и нет удобного средства просмотра, которое помогает пользователям обнаруживать, какие объекты управления существуют даже.
Кроме того, код java может быть тривиально обращен назад к источнику, воссоздан в проект, а затем отлажен с удаленными точками останова от производственной системы. Это возможно с помощью .net, но они, конечно же, нелегко сделать.