准备工作:
1.确保本地电脑windows安装的jdk版本有jvisualvm工具,查看你jdk的home目录下面的bin目录是否存在jvisualvm.exe
2.确保你的远程服务器(linux)安装的jdk版本存在 jstatd(位于jdk的home下面的bin目录下),以及tools.jar
首先是linux
1.首先在你的linux服务器任意位置新建一个文件:jstatd.all.policy(名字可以随意) 内容如下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
注:${java.home} 被识别为当前jstatd的目录,即使系统指定JAVA_HOME,$JAVA_HOME也不能被识别,或者直接使用绝对路径。jstatd.all.policy可以放在任何位置,运行时需要指定绝对路径。
2. 然后运行命令 :jstatd -J-Djava.security.policy=/ccg/java/jstatd.all.policy -J-Djava.rmi.server.hostname=ip (你linux服务器ip地址)
注:/ccg/java/jstatd.all.policy 是你上面配置文件的绝对地址,只能使用绝对地址否则报错,ip地址是你linux服务器ip地址
3. 新开一个linux命令行终端,运行 netstat -anp|grep jstatd,这时你可以看到 jstatd监听了两个端口,一个是固定的1099,另一个是每次是不一样的端口号现在是45509, 开放这两个端口,允许访问
现在远程linux已经准备就绪,接下来就是你自己电脑
本地电脑
1.检验上面步骤是否正确:打开cmd 执行命令 jps ip(你linux的ip地址),如输出类似下面。即代表正确,这些代表你linux上所有运行的java进程
2.打开jvisualvm工具,cmd执行命令 jvisualvm
3.添加远程主机,配置linux ip 确定
4.新添jstatd连接,设置端口1099,确定即可
5.出现java进程信息,成功!!!
6.双击其中一个,点开右边窗口上边的 Visual GC
对您有用有帮助请记得点个赞!!!