问题从jstatd开始

时间:2013-09-23 13:57:16

标签: visualvm jvisualvm jstatd

我正在尝试将JVisualVM连接到jstatd。但是在我的远程服务器上,我遇到了启动jstatd的问题。

#  netstat -nlp | grep rmiregistry
tcp        0      0 0.0.0.0:1098                0.0.0.0:*                   LISTEN      7320/rmiregistry
tcp        0      0 0.0.0.0:34872               0.0.0.0:*                   LISTEN      7320/rmiregistry

错误

# ./jstatd -J-Djava.security.policy=jstatd.all.policy -p 1098
Could not bind //:1098/JStatRemoteHost to RMI Registry
java.rmi.UnexpectedException: undeclared checked exception; nested exception is:
        java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
        at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
        at java.rmi.Naming.rebind(Naming.java:177)
        at sun.tools.jstatd.Jstatd.bind(Jstatd.java:57)
        at sun.tools.jstatd.Jstatd.main(Jstatd.java:143)
Caused by: java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)
        ... 4 more

1 个答案:

答案 0 :(得分:0)

您使用的是错误的JDK。此sun.jvmstat.monitor.remote.RemoteHost not found in gnu.gcj.runtime.SystemClassLoader表示您正在使用GCJ来运行Jstatd。请使用OpenJDK或Oracle JDK。