首页 > 解决方案 > 无法在 Windows 中使用 java VisualVM 连接到包含 java 1.8.0 的远程 ubuntu 机器

问题描述

我知道已经有人问过这方面的问题,但不幸的是,我尝试了每件事,但仍然没有运气,所以我决定发布这个,以便我可以从你们那里得到直接的帮助。

我正在尝试使用本地 Windows 机器监视在 ubuntu 服务器中运行的 java 服务Java VisualVM

java -version

openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~18.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)

我在互联网上搜索了很多,得出的结论是我必须在我的 ubuntu 服务器中设置 jstatd

我在终端上运行这个命令

jstatd -J-Djava.security.policy=/usr/lib/jvm/java-8-openjdk-amd64/bin/jstatd.all.policy -J-Djava.rmi.server.hostname=10.66.0.5 -J-Djava.rmi.server.logCalltrue -p 1099

在哪里

jstatd.all.policy的内容

grant codebase "file:/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar" {
permission java.security.AllPermission;
};

10.66.0.5:我要监控的 ubuntu 服务器的 IP

当我运行此命令时,屏幕从下一行挂起,当我打开另一个终端并检查端口 1099 的状态时,如下所示:

sudo netstat -tulpn | grep :1099

我明白了:

tcp6       0      0 :::1099                 :::*                    LISTEN      22188/jstatd

所以我认为这运行良好

当我尝试使用 VisualVM 连接到 ubuntu 服务器时会出现问题,所以我要做的是:

  1. 在我的 Windows 机器中打开 Java VisualVM
  2. 项目清单
  3. 然后添加远程主机:主机名:10.66.0.5(我的ubuntu机器的ip)

怎么办??右键单击远程菜单并尝试使用此设置添加 JMX 连接时没有任何反应

在此处输入图像描述

我收到此错误:

无法使用 service:jmx:rmi:///jndi/rmi://10.66.0.5:1099/jmxrmi 连接到 10.66.0.5:1099

现在我应该怎么做才能监控我的 ubuntu 服务器上运行的服务?

问题:

One more question do I need to install VisualVM also in my ubuntu machine as well ?

标签: javaubuntuvisualvm

解决方案


推荐阅读