【问题标题】:VisualVM fails to startVisualVM 无​​法启动
【发布时间】:2018-12-08 18:51:09
【问题描述】:

升级到 Ubuntu 18.10 后,VisualVM 1.3.9-1 无法启动。它是通过包管理器安装的,我真的不想手动安装。我尝试使用以下日志打开它:

visualvm -J-Djava.util.logging.config.file=logging-jconsole.properties

它给出了这个输出

java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at org.netbeans.core.startup.layers.BinaryFS.<init>(Unknown Source)
at org.netbeans.core.startup.layers.BinaryCacheManager.load(Unknown Source)
at org.netbeans.core.startup.layers.LayerCacheManager$1Updater.run(Unknown Source)
at org.openide.filesystems.EventControl.runAtomicAction(Unknown Source)
at org.openide.filesystems.FileSystem.runAtomicAction(Unknown Source)
at org.openide.filesystems.FileUtil.runAtomicAction(Unknown Source)
at org.netbeans.core.startup.layers.LayerCacheManager.store(Unknown Source)
at org.netbeans.core.startup.layers.ModuleLayeredFileSystem.setURLs(Unknown Source)
at org.netbeans.core.startup.layers.ModuleLayeredFileSystem.addURLs(Unknown Source)
at org.netbeans.core.startup.NbInstaller.loadLayers(Unknown Source)
at org.netbeans.core.startup.NbInstaller.loadImpl(Unknown Source)
at org.netbeans.core.startup.NbInstaller.access$000(Unknown Source)
at org.netbeans.core.startup.NbInstaller$1.run(Unknown Source)
at org.openide.filesystems.FileUtil$2.run(Unknown Source)
at org.openide.filesystems.EventControl.runAtomicAction(Unknown Source)
at org.openide.filesystems.FileSystem.runAtomicAction(Unknown Source)
at org.openide.filesystems.FileUtil.runAtomicAction(Unknown Source)
at org.openide.filesystems.FileUtil.runAtomicAction(Unknown Source)
at org.netbeans.core.startup.NbInstaller.load(Unknown Source)
at org.netbeans.ModuleManager.enable(Unknown Source)
at org.netbeans.ModuleManager.enable(Unknown Source)
at org.netbeans.core.startup.ModuleList.installNew(Unknown Source)
at org.netbeans.core.startup.ModuleList.trigger(Unknown Source)
at org.netbeans.core.startup.ModuleSystem.restore(Unknown Source)
at org.netbeans.core.startup.Main.getModuleSystem(Unknown Source)
at org.netbeans.core.startup.Main.getModuleSystem(Unknown Source)
at org.netbeans.core.startup.Main.start(Unknown Source)
at org.netbeans.core.startup.TopThreadGroup.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)

系统上安装的Java如下

matthew@matthew-Kratos:~$ ls /usr/lib/jvm/
default-java               java-11-openjdk-amd64     java-8-openjdk-amd64
java-1.11.0-openjdk-amd64  java-1.8.0-openjdk-amd64  java-9-openjdk-amd64
matthew@matthew-Kratos:~$ dpkg-query -l | grep openjdk
ii  openjdk-11-jdk:amd64                       11.0.1+13-2ubuntu1                         amd64        OpenJDK Development Kit (JDK)
ii  openjdk-11-jdk-headless:amd64              11.0.1+13-2ubuntu1                         amd64        OpenJDK Development Kit (JDK) (headless)
ii  openjdk-11-jre:amd64                       11.0.1+13-2ubuntu1                         amd64        OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-11-jre-headless:amd64              11.0.1+13-2ubuntu1                         amd64        OpenJDK Java runtime, using Hotspot JIT (headless)
ii  openjdk-8-jdk:amd64                        8u191-b12-0ubuntu0.18.10.1                 amd64        OpenJDK Development Kit (JDK)
ri  openjdk-8-jdk-headless:amd64               8u191-b12-0ubuntu0.18.10.1                 amd64        OpenJDK Development Kit (JDK) (headless)
ii  openjdk-8-jre:amd64                        8u191-b12-0ubuntu0.18.10.1                 amd64        OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-8-jre-headless:amd64               8u191-b12-0ubuntu0.18.10.1                 amd64        OpenJDK Java runtime, using Hotspot JIT (headless)
rc  openjdk-9-jre-headless:amd64               9~b161-1                                   amd64        OpenJDK Java runtime, using Hotspot JIT (headless)

【问题讨论】:

    标签: ubuntu-18.04 visualvm jvisualvm


    【解决方案1】:

    Debian 不稳定,visualvm 1.3.9 和 1.4.2 出现同样的错误。

    对我有帮助的解决方法是使用以下方法(即与 Tomas Hurka 提供的答案相同):

    visualvm --jdkhome /usr/lib/jvm/java-11-openjdk-amd64
    

    当然,要使其正常工作,您需要安装 openjdk-11-jdk。您的路径可能需要针对您的系统进行调整;这个想法是使用 Java 9 或更新的运行时运行。

    (作为参考,我认为在我的案例中潜在的 Debian 错误是https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897945

    【讨论】:

    • 使用 JDK 11,我得到:Error occurred during initialization of boot layer java.lang.module.FindException: Module java.activation not found (VisualVM 1.3.9)
    • 哦,我明白了 - 1.4.2 之前的 VisualVM 版本不能在 Java 11 上运行:github.com/oracle/visualvm/issues/108#issuecomment-418344988
    【解决方案2】:

    尝试在 JDK 8 上运行 VisualVM 1.3.9。您可以这样做:

    visualvm --jdkhome /usr/lib/jvm/java-1.8.0-openjdk-amd64
    

    可以通过以下方式启用日志记录:-J-Dnetbeans.logger.console=true

    【讨论】:

    • 我尝试了两个 jvm。同样的问题。我已经切换回 Windows,因为最新的 ubuntu 更新搞砸了我的扩展坞
    • 这给了我与问题中相同的NoSuchMethodError
    • 您有来自visualvm.github.io 的VisualVM 吗?看起来 Debian 的 visualvm 坏了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多