Не удается запустить jstatd.exe для удаленного мониторинга приложений?

Прекрасный день всем вам.

Я хочу использовать jstatd для мониторинга JVM, GC, Heap и некоторых важных показателей некоторых приложений, работающих на удаленных машинах.

Когда я попытался выполнить команду jstatd.exe из папки bin пути java через командную строку, я получил следующую ошибку:

C:\Program Files (x86)\Java\jdk1.6.0_38\bin>jstatd.exe
Could not create remote object
access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:374)
            at java.security.AccessController.checkPermission(AccessController.java:
    549)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
            at java.lang.System.setProperty(System.java:725)
            at sun.tools.jstatd.Jstatd.main(Jstatd.java:122).

Когда мы проверили эту ошибку в Интернете, мы узнали, что нам нужно добавить некоторый файл безопасности, который упомянут в ссылке не удается запустить jstatd из-за ошибки разрешения. Но по-прежнему мы получаем ту же ошибку.

Может ли кто-нибудь нам в этом помочь.

Заранее спасибо.


person Yasir    schedule 12.03.2015    source источник


Ответы (1)


Проверьте свою версию Java с помощью "java -version" с помощью cmd. В моем случае моя версия java была 1.7, поэтому она не сработала. Если это проблема, обновите файл политики, указав правильную версию, как показано ниже:

grant codebase "file:C:/Program Files/Java/jdk1.7.0_51/lib/tools.jar" {
   permission java.security.AllPermission;
};

Теперь запустите jstatd, как показано ниже

C:\Program Files\Java\jdk1.7.0_51\bin>jstatd -p 1234 J-Djava.security.policy=D:
\jstatd.all.policy

Надеюсь, это сработает!

N.B. попробуйте подключиться через visualVM к вашему удаленному хосту через этот порт [1234], иначе это не сработает.

Изменить:

Для jdk 1.6

файл политики:

grant codebase "file:C:/Program Files/Java/jdk1.6.0_45/lib/tools.jar" {
   permission java.security.AllPermission;
};

команда jstatd:

C:\Program Files\Java\jdk1.6.0_45\bin>jstatd J-Djava.security.policy=D:/jstatd.
all.policy -p 1234
person mnhmilu    schedule 03.06.2015
comment
Это очень устарело. tools.jar больше не существует в таких дистрибутивах, как OpenJDK 11 - person hanzo2001; 14.10.2020