2013-11-12 2 views
0

Когда я пытаюсь увидеть visualGC в VisualVM, он говорит: «Не поддерживается для этой виртуальной машины Java» и SOLN я нашелокна 2003 сервер - visualGC в VisualVM Не поддерживается для этой виртуальной машины Java (JDK 1.7)

run jstatd -J-Djava.security.policy=tools.policy 

и когда я запустить эту команду, я получаю

C:\Program Files\Java\jdk1.7.0_45\bin>jstatd -J-Djava.security.policy=to 
Could not create remote object 
access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" 
"write") 
java.security.AccessControlException: access denied ("java.util.PropertyPermissi 
on" "java.rmi.server.ignoreSubClasses" "write") 

SOLN к этому вопросу jstatd oracle link, но эта ссылка говорит
It is not currently available on the Windows 98 and Windows ME platforms

Я пытаюсь подключиться с локальной машины к удаленному серверу Windows2003 JDK 1.7 - это то, что я использовал для визуальных и визуальных GC

, пожалуйста, помогите!

+0

Вы также создать соответствующий файл 'tools.policy'? – Holger

+0

да, сделано это тоже. снова с помощью internet/google/SO –

ответ

0

Проблема была немного иной, причина, по которой я получаю «Не поддерживается для этой JVM», заключается в том, что приложение, которое я хочу профилировать, является службой Windows, поэтому вкладка visualGC показывает «Не поддерживается для этой JVM». Что мы сделали, взял файл .exe и запустил его на консоли с помощью -run в качестве параметра, и он работал как обычное приложение java и, следовательно, мог видеть вкладку visualGC

У сомнений у меня есть, мы не сделали run jstatd (мое приложение запускалось как служба Windows на Windows Server 2003), поэтому как мы можем просматривать VisualGC, вопреки тому, что я вижу в Интернете, и в соответствии с тем, что я написал в своем вопросе?

+1

Вам не нужен jstatd для локальных JVM, и даже для сетевых подключений есть возможность создавать JMX-соединения без него. Но если ваше приложение работает как служба, оно обычно выполняется под другой учетной записью пользователя. Поэтому обычный пользователь не может подключиться к нему через локальное обнаружение JVM по соображениям безопасности. – Holger

+0

большое понимание, много, чтобы учиться на двух линиях –