【问题标题】:Where did jvisualvm go?jvisualvm 去哪儿了?
【发布时间】:2012-10-30 00:26:16
【问题描述】:

我正在运行 Mac OSX Snow Leopard。

我一直使用 Mac OSX 的常规软件更新功能更新 Java。

我过去曾使用 Java jvisualvm 工具取得了巨大成功。

今天早上我像往常一样在命令行中输入了jvisualvm。我收到以下错误:

 $ jvisualvm
 Unable to locate an executable at "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/jvisualvm" (-1)

所有其他 Java 工具(javajavacjps 等)都可以正常工作。

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin 确实不包含jvisualvm(突然之间)。

/usr/libexec/java_home 产生:

$ /usr/libexec/java_home
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

WTF?

【问题讨论】:

  • 试试 /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/jvisualvm
  • 没有骰子:` /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/jvisualvm 无法在“/System/Library/Java/JavaVirtualMachines/1.6.0. jdk/Contents/Home/bin/jvisualvm" (-1)`
  • @LairdNelson 同样在这里 :( 这很奇怪。我手动下载了 VisualVM 并且它工作正常。例如,它没有连接到任何应用程序来配置文件。
  • 你知道我也有类似的问题。我认为根本原因是一些 VisualVM,但在 OS X 10.8.3 + JDK7 上。 VisualVM 启动但在我的 Eclipse 的 PID 上抱怨“attach: task_for_pid(330) failed (5)”。如果我删除 eclipse 并重试,它会成功在 Local 上找到正在运行的 java 进程。

标签: java macos


【解决方案1】:

我下载了 visualvm (.dmg from java.net),它适用于我的 Mountain Lion。

【讨论】:

  • Virtualvm 实际上比 jconsole 更具视觉吸引力,如果您想进行分析,它提供了更多功能。
【解决方案2】:

macOS Mojave 中 JDK 1.8 的 Visual VM 二进制路径是

/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/jvisualvm

基本上,

/Library/Java/JavaVirtualMachines/<JDK_DIR>/Contents/Home/bin/jvisualvm

【讨论】:

    【解决方案3】:

    VisualVM 也可作为独立应用程序使用。你可以从安装它 https://visualvm.github.io/download.html

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    【解决方案4】:

    对于 JDK 9 用户

    从 JDK 9 开始,Visual VM 将不包含在 Oracle JDK 中。想要将 Visual VM 与 Oracle JDK 9 或更高版本一起使用的开发人员可以从 Visual VM 开源项目站点获取它。

    【讨论】:

      【解决方案5】:

      似乎支持包在更新时被删除了。 https://discussions.apple.com/thread/4474992?start=0&tstart=0

      下载捆绑包以用作解决方法。 http://visualvm.java.net/download.html

      编辑:

      使用此下载链接:https://java.net/projects/visualvm/downloads/download/release132/VisualVM_132.d‌​mg

      【讨论】:

      【解决方案6】:

      有时候很简单……你需要通过安装visualvm

      sudo apt-get install visualvm
      

      要查找文件,请使用

      dpkg -L visualvm
      

      【讨论】:

      • 啊,抱歉,我不知何故忽略了他使用的是 Mac。 >_
      • 请注意,该程序通常已经与 JDK 一起安装。
      【解决方案7】:

      如果您已经在使用 NetBeans,另一种解决方法是使用它的分析器。在 7.3 版中:

      • 从命令行、桌面或启动Java应用程序。

      • 在 NetBeans 中,选择 Profile &gt; Attach Profiler

      • 选择Attach to: &lt;external Application&gt;

      • 指定所需的分析选项。

      • 点击Attach按钮。

      • 选择目标应用程序。

      【讨论】:

        【解决方案8】:

        看起来像是链接的混合; /usr/bin/jvisualvm 符号链接指向不存在的东西(正如人们在上面指出的那样)。显然 jvisualvm 可执行文件(存根)存在,目前解决此问题的方法是执行:

        cd /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin
        
        sudo ln -s /System/Library/Java/Support/VisualVM.bundle/Contents/Home/bin/jvisualvm .
        

        这需要 sudo 权限并创建缺少的符号链接,指向 VisualVM 包。不知道为什么会这样,但升级到最新的 XCode 4.5.2 并没有自动为我解决这个问题。我正在运行 MacOS X 10.7.5 和 java 1.6.0_37

        【讨论】:

        • 感谢您的意见;我会尽快尝试一下,如果可行,我会给你答案。
        • 这种方法不再有效(至少在 Mountain Lion 中)。见stackoverflow.com/a/13690431/1395668
        • 请考虑将接受的答案更改为指示读者下载 JVisualVM dmg 的答案。
        • Mac Sierra 10.12.1 中的路径是:/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/jvisualvm
        【解决方案9】:

        我只能在我的美洲狮 MBP 上运行 .app 版本的 JVisualVM

        open /usr/share/java/Tools/Java\ VisualVM.app
        

        【讨论】:

        • 你能补充一些解释吗?
        • 这对我也不起作用;试图打开它只是短暂地启动......真的什么也启动不了。调查底层 jvisualvm 符号链接我发现它指向同一个失败的位置:s -al /usr/share/java/Tools/Java\ VisualVM.app/Contents/MacOS/jvisualvm lrwxr-xr-x 1 root wheel 97 Aug 2 2010 /usr/share/java/Tools/Java VisualVM.app/Contents/MacOS/jvisualvm -&gt; /System/Library/Frameworks/JavaVM.framework/Resources/VisualVM.bundle/Contents/Home/bin/jvisualvm
        • 我不知道为什么,我猜苹果公司有人对所有链接感到困惑并删除了一些东西。
        • @Laird,我的 .app 文件看起来不一样:ls /usr/share/java/Tools/Java\ VisualVM.app/Contents/MacOS JavaApplicationStub 但跟着这些点,我找到了这个可执行文件,它再次从命令行为我工作。 /System/Library/Java/Support/VisualVM.bundle/Contents/Home/bin/jvisualvm备案java -version java version "1.6.0_37"
        • WFM。在我找到这个答案之前,我在 Apple 开发人员网站 (bit.ly/T0689b) 上找到了一个手册页,上面说 jvisualvm 是 Xcode 命令行工具的一部分,所以我启动了 Xcode 并更新了命令行工具(首选项->下载 -> 命令行工具 -> 更新)。也许这是必需的?
        猜你喜欢
        • 1970-01-01
        • 2011-03-03
        • 2014-03-15
        • 2015-07-17
        • 2013-05-23
        • 1970-01-01
        • 2012-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多