1

我难住了。在我的旧 Mac 上,Jconsole 无法连接到本地 JVM。我以为我做了一些事情来搞乱系统配置。然后我得到了一台新的Mac。我做的第一件事是下载一个 jdk,安装它并检查 jconsole 是否可以连接。它可能。

然后,我使用 Time Machine 备份驱动器从旧 Mac 中提取用户和应用程序,但系统文件除外。仍然有效。

但我发现我的开发环境发生了奇怪的事情。在 Eclipse 中,我可以启动我的 Jboss 服务器,但 Eclipse 从未识别出 Jboss 服务器已经启动。所以,我永远无法通过 Eclipse 向它添加或删除战争文件。

此外,即使 ds 文件明确将 localhost 作为要连接的主机,jboss 实例也无法连接到我的 localhost PostGres 数据库。

我通过为我的新 Mac 提供旧 Mac 的主机名来解决这些问题。但现在我又无法通过 jconsole 连接到本地 JVM。

这不仅会影响 jconsole,还会影响 jprof,所以我想修复它。

jconsole 可以看到 JVM 进程。当我尝试连接时它只是超时。

我还尝试连接到 localhost:通过编写一个睡了五分钟的 java 类并使用以下命令行运行它:

java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false

但我也无法连接到 localhost:9010 或 :9010。我的猜测是这是一些网络配置问题,但任何帮助都会非常感激。

谢谢,

乔治

4

1 回答 1

3

我有类似的超时问题。查看正在发送的数据包,似乎 jconsole 试图通过外部接口连接并被防火墙阻止。

我添加了

JAVA_TOOL_OPTIONS=-Djava.rmi.server.hostname=localhost

到我的环境,以确保使用所有 java 进程localhost而不是 RMI 的外部接口(这是 jconsole 用于连接的接口)

于 2018-01-18T09:17:01.913 回答