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

我正在使用以下命令安装了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 服务器。



月关宝盒
浏览 126回答 1
1回答

临摹微笑

论据的顺序是错误的。这些参数在您的 main 方法中作为 args 可用,但 Java 运行时并不关心它们。java -hUsage: 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java