jconsole 无法连接到我的新 Mac Air 上的本地进程

Posted

技术标签:

【中文标题】jconsole 无法连接到我的新 Mac Air 上的本地进程【英文标题】:jconsole cannot connect to local processes on my new Mac Air 【发布时间】:2013-08-11 16:40:15 【问题描述】:

我被难住了。在我的旧 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。 我的猜测是这是一些网络配置问题,但非常感谢任何帮助。

谢谢,

乔治

【问题讨论】:

自发布以来添加 -Dcom.sun.management.jmxremote.ssl=false 到运行参数。 自发布以来添加 -Dcom.sun.management.jmxremote.ssl=false 到运行参数。我现在可以从我在 Mac 上运行的虚拟 Windows 主机远程登录到端口 9010。 Jconsole 还可以从虚拟主机上运行的 jconsole 中使用 :9010 查看进程。但是,jconsole 访问 VM 信息时会超时。因此,jconsole 知道 VM 在那里,但无法执行任何需要从 VM 获取使用信息的操作。 【参考方案1】:

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

我加了

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

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

【讨论】:

我知道这是一个旧答案,但我正在处理类似的问题。你是怎么做的? @艺术布里斯托尔I had similar issues with timeouts. Looking at the packets being sent, it seems that jconsole was trying to connect via an external interface and being blocked by the firewall. @genki98 将我的回答中提到的环境变量添加到您的.bashrc.bash_profile。您可能需要重新启动

以上是关于jconsole 无法连接到我的新 Mac Air 上的本地进程的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到 Jconsole - cassandra k8 集群

FIREBASE-ANE Adob e air android无法连接到我的Firebase项目

JConsole 远程连接到 JBoss EAP

AIR NativeProcess standardInput无法连接到应用。

VS Xamarin '无法连接到 Mac.local'

osx上的mysql:访问被拒绝并且无法连接到套接字