VisualVM “not supported for this JVM” on all local applications?

前端 未结 14 2317
故里飘歌
故里飘歌 2020-12-16 09:05

I have already spent a long time to load and test my application, now I need to profile it. But unluckily, the VisualVM always says \"not supported for this JVM\" on my loca

相关标签:
14条回答
  • 2020-12-16 09:30

    In my case, even with the JVMs matching (both 64-Bit), the only way to get things working was sending the argument -Dcom.sun.management.jmxremote to the JVM to be monitored. That also works if you are having problems to connect via Java Mission Control (JMC).

    According to JMX's documentation, this what the argument does:

    Setting this property registered the Java VM platform's MBeans and published the Remote Method Invocation (RMI) connector via a private interface to allow JMX client applications to monitor a local Java platform, that is, a Java VM running on the same machine as the JMX client.

    This was supposed to be enabled automatically, but for some reason it wasn't on my Linux.

    0 讨论(0)
  • 2020-12-16 09:32

    I have changed name to my Windows User and set it all lowercase, restarted my PC and it all works now.

    0 讨论(0)
  • 2020-12-16 09:34

    I found out that (at least under Windows) one can easily write small batch files to run VisualVM in combination with specific JVMs, which is important for me, since I have installed the 32bit JDK alongside with the 64bit JDK (I need both, so this is sensible for me). I have created two batch files in the folder "S:\applications\visualvm\bin\":

    run_32.bat:

    @echo off
    START "VisualVM 32" visualvm.exe --jdkhome "C:\Program Files (x86)\Java\jdk1.7.0_07"
    

    run_64.bat:

    @echo off
    START "VisualVM 64" visualvm.exe --jdkhome "C:\Program Files\Java\jdk1.7.0_07"
    

    Obviously, all paths may differ on your system, but the general idea should still work correctly (on all 64bit versions of Windows). The benefit is that I can use the 32bit batch file when I want to use VisualVM in combination with Java applications that run on the 32bit JVM, and so on for 64bit.

    The "start" command has the only benefit that the batch file launches the application without waiting for it to finish, so the command prompt window closes immediately. This is not a feature of VisualVM, but of the Windows batch file interpreter.

    0 讨论(0)
  • 2020-12-16 09:35

    On Linux: Make sure that your /etc/hosts correctly references the effective ip address of your "hostname" It appears that a discrepancy here totally confuses the poor jvisualvm and its programmers.

    0 讨论(0)
  • 2020-12-16 09:37

    I was having the problem having of visualvm detect my local tomcat installation on Windows 7. I could connect manually, but then things like memory snapshots and visualgc plugin were not enabled. I confirmed that I was using same JVM version, temp file permissions, etc. Didn't work. Then I found that starting visualvm first, and then tomcat, solved the problem.

    0 讨论(0)
  • 2020-12-16 09:40

    I too got the same problem for local tomcat, I search for solutions for stackoverflow. after some serious debugging, I figured out that VisualGC don't have permissions to get GC informations from tool.jar file.

    by links

    http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstatd.html#SECURITY https://stackoverflow.com/a/42107355/3876619

    I following steps to solve the issue

    1) Create a permission file

    vim /tmp/tools.policy
    

    Add

    grant codebase "file:${java.home}/../lib/tools.jar" {
       permission java.security.AllPermission;
    };
    

    save it

    2) Now add /tmp/tools.policy to JVM startup parameters

    -Djava.security.policy=/tmp/tools.policy
    

    3) Run jvisualVm with sudo

    0 讨论(0)
提交回复
热议问题