为了账号安全,请及时绑定邮箱和手机立即绑定

将 Windows 上的 JConsole 与 Linux 上的远程 Java Springboot

将 Windows 上的 JConsole 与 Linux 上的远程 Java Springboot

月关宝盒 2022-05-21 17:14:04
我正在使用以下命令安装了java 1.8 的 RHEL 服务器上启动 Java SpringBoot 应用程序:-java -jar App.jar --spring.profiles.active=dev -Xms96m -Xmx128m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:loggc.log -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=5901-Dcom.sun.management.jmxremote.rmi.port=5901-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=localhost当 jar 成功启动时,已经分配了一个PID ,我想监视该 PID 的 Heap Utilization。因此,我试图通过在 Windows 环境中使用 JConsole并将 Linux 上的 JMX 端口与使用 putty 端口转发的 Windows 上的端口绑定来实现这一点。但由于 JRMP 连接失败,我无法成功连接。有一天可以让我了解我可能做错了什么,或者是否有更好的方法来分析 Linux 环境中的堆利用率。我尝试通过以下方式访问它:jconsole 5901,但它在远程端点显示非 JRMP 服务器。
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

论据的顺序是错误的。这些参数在您的 main 方法中作为 args 可用,但 Java 运行时并不关心它们。


java -h

Usage: java [-options] class [args...]

           (to execute a class)

   or  java [-options] -jar jarfile [args...]

           (to execute a jar file)

正确排序后,Java 运行时将拾取参数,而不是您的应用程序。


java -Xms96m -Xmx128m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:loggc.log 

-Dcom.sun.management.jmxremote 

-Dcom.sun.management.jmxremote.port=5901

-Dcom.sun.management.jmxremote.rmi.port=5901

-Dcom.sun.management.jmxremote.ssl=false 

-Dcom.sun.management.jmxremote.authenticate=false 

-Dcom.sun.management.jmxremote.local.only=false 

-Djava.rmi.server.hostname=localhost

-jar App.jar --spring.profiles.active=dev


查看完整回答
反对 回复 2022-05-21
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信