В один момент мне понадобилось отпрофилировать свое приложение. Но не тут то было, выскочило окошко о том, java приложения не могут быть найдены.
Перейдя по ссылке http://visualvm.java.net/troubleshooting.html#jpswin обнаруживаем необходимую справочную информацию.
Local Applications Cannot Be Detected (Error Dialog On Startup)
Description: An error dialog saying that local applications cannot be detected is shown immediately after VisualVM startup.
Resolution: This can happen on Windows systems, it's caused by misconfigured
jvmstat
technology used to detect the running applications. There are two possible causes:- Insufficient permissions for
%TMP%\hsperfdata_username
folder - make sure you're able to create a file in the directory and eventually update the permissions for full folder access. Alternatively you can just re-create the folder which should automatically set the correct access rights. See see this forums.sun.com thread for more details. - Having
%TMP%\hsperfdata_username
folder on a FAT disk - by defaultjvmstat
doesn't work on FAT disks due to security restrictions. You can bypass the security check by setting the-XX:+PerfBypassFileSystemCheck
flag for both VisualVM and the monitored application. See the JDK bug #5042659 for more details.
Понятно, что у меня не FAT система, все-таки 21 век на дворе. Остается из описания, что у меня не хватает прав на директорию hsperfdata_username.
Что-то частенько стало не хватать прав в Windows 7, не правда ли? :)
Смотрим, где эта папка лежит:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
C:\Users\anteastra>jvisualvm
C:\Users\anteastra>echo %TMP%
C:\Users\ANTEAS~1\AppData\Local\Temp
C:\Users\anteastra>
Отлично! Теперь добавим права для этой директории на запись нужной группе в свойствах папки->безопасность.
Тут же запуская jVisualVM, никаких java приложений, кроме самой jVisualVM, мы не увидим. Потому что при запуске java процесса в эту директории создается файл с именем id процесса, если есть такая возможность. Соответсвенно, наши томкаты и эклипсы придется перезапустить :)
Приятного профайлинга!
Тут же запуская jVisualVM, никаких java приложений, кроме самой jVisualVM, мы не увидим. Потому что при запуске java процесса в эту директории создается файл с именем id процесса, если есть такая возможность. Соответсвенно, наши томкаты и эклипсы придется перезапустить :)
Приятного профайлинга!
У меня права для директории на запись были для всех групп. Да и файловая система не FAT. Однако с этим все-равно столкнулся.. Есть предложения, что делать?
ОтветитьУдалитьПри запуске java приложений в директории %TMP%\hsperfdata_username появляются ли файлы? Если да, то тогда может быть у самого jvisualvm есть проблемы с доступом?
УдалитьВо втором случае стоит запускать приложение с правами администратора.
Такие предложения