Visualvm не видит Java-процесс, запущенный с cygwin

Если я запустил java-процесс в консоли cygwin, а затем запустил visualVm, то позже не увидим первого.

Если я запускаю тот же процесс в консоли Dos, visualvm видит, что это нормально. Я нахожусь в jdk1.6.0_25. Это происходит как в win7 32b, так и в win7 64b с 64-битным jvm.

Кто-нибудь может подумать об объяснении/обходном пути?

Ответы

Ответ 1

У меня была та же проблема. Vm не был показан автоматически, но я смог подключиться через "Добавить соединение JMX", используя имя хоста и jmx.remote.port...

В VisualVM перейдите в File → Add JMX Connection

localhost:3333

Добавить параметр vm при запуске, например:

 -Dcom.sun.management.jmxremote.port=3333
 -Dcom.sun.management.jmxremote.ssl=false
 -Dcom.sun.management.jmxremote.authenticate=false

Ответ 2

Я исправил проблему, запустив VisualVM из Cygwin. Если вы предпочитаете не профилировать с помощью удаленного JMX-соединения, вы можете запускать VisualVM и вашу Java-программу с помощью Cygwin:

Откройте окно Cygwin Console, перейдите к visual_vm.exe и запустите этот файл из среды Cygwin.

Ответ 3

VisualVM может автоматически определять локальные приложения, работающие под одним и тем же пользователем. Таким образом, одно объяснение может заключаться в том, что процесс cygwin работает под другим пользователем. Убедитесь, что и VisualVM, и контролируемое приложение работают под обновлением JDK 6 25. Обновление JDK 6 25 имеет исправление для следующей ошибки JDK # 6938627, которые могут повлиять на ваш случай.