java - 需要在 VMWare 下在 Windows 上运行 VisualVM 的帮助

标签 java jvm visualvm jvisualvm

我正在 VMWare Fusion 3.x (OSX) 内运行的 Windows 7 x64 上进行一些 Java 开发。我已经安装了 JDK6(更新 26),将 JAVA_HOME 设置为路径(无尾部斜杠),然后重新启动命令提示符。

我可以成功启动该程序。在启动过程中,它会运行校准,然后失败并出现以下错误:

“无法创建目录\VMWare-host\共享文件夹\.nbprofiler”(斜杠后没有空格,但标记隐藏了句点)

我可以单击继续,但是当我在程序中时,我无法进行 CPU 或内存分析。我抛出了一个类似的错误框:

“检索目标 JVM 保存的校准数据时出错:无法创建...(与之前相同)”

曾经,我通过在启动期间传递 --userdir 标志和 -J-Dnbprofiler.home 来实现此目的,但这个技巧不再起作用了。

(完整的命令是: jvisualvm --userdir c:\Users\myname -J-Dnbprofiler.home=c:\Users\myname )

如何强制 jvisualvm 将其校准数据保存在“真实”驱动器而不是 vmware 网络驱动器上并使其正常工作?

最佳答案

.nbprofiler 目录源自 user.home 系统属性。我不确定您对 Windows 安装做了什么,但您的 user.home 指向 directory\VMWare-host\Shared Folders。因此,一种解决方案是修复 Windows 安装,以便 Java 将 c:\Users\myname 识别为您的用户主目录。如果由于某种原因失败,您可以使用 nbprofiler.home 属性来覆盖它,正如您正确编写的那样。但是,您应该将其指向不存在的目录,因此您应该使用以下命令行启动 VisualVM:

jvisualvm -J-Dnbprofiler.home=c:\Users\myname\nbprofiler --userdir c:\Users\myname\visualvm_userdir 

最后一点,即使探查器部分不起作用,您也应该能够在“采样器”选项卡中使用采样。

关于java - 需要在 VMWare 下在 Windows 上运行 VisualVM 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363607/

相关文章:

java - OSGi 声明式服务 (ds) 使用

64-bit - 加载错误的jvm.dll

java - 为什么更改 VMOptions 后无法打开 Android Studio

java - 使用 VisualVM 监控 Java 应用程序

java - 尝试了所有方法,但 android finish(); Activity 不工作

java - 使用 Intellij Application run 和 gradle 4.2.1 时的单个编译输出目录

java - 如何在 oracle 数据库中存储 BigInteger 值

spring-boot - JVM 在验证 pub/sub 时崩溃

java - 由于 LogManager.getLogger(Logger.class.getName()); 导致 PermGen 空间增加;

java - 我正在尝试执行 jql 查询,但出现错误