我正在VMWare Fusion 3.x(OSX)中运行的Windows 7 x64上进行一些Java开发。我已经安装了JDK6(更新26),将JAVA_HOME设置为路径(没有尾部斜杠),然后重新启动我的命令提示符。
我可以成功启动该程序。在启动期间,它运行校准,然后失败,出现此错误:
“无法创建目录\ VMWare-host \ Shared Folders \ .nbprofiler”(斜杠后没有空格,但标记隐藏了句点)
我可以点击继续,但是当我在程序中时,我无法进行CPU或内存分析。我抛出一个类似的错误框:
“检索目标JVM的已保存校准数据时出错:无法创建...(与之前相同)”
曾几何时我通过在启动时传递--userdir标志和-J-Dnbprofiler.home来完成这项工作,但这个技巧不再适用了。
(完整的命令是: jvisualvm --userdir c:\ Users \ myname -J-Dnbprofiler.home = c:\ Users \ myname )
如何强制jvisualvm将其校准数据保存在“真实”驱动器而不是vmware网络驱动器上并使其正常工作?
答案 0 :(得分:3)
.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
最后一点,即使探查器部件不起作用,您也应该能够在“采样器”选项卡中使用采样。
答案 1 :(得分:0)
尝试禁用VM的共享。
它适用于Windows 7 x86在Fusion with Sharing中禁用(并且共享是提供您无法写入的文件夹的机制)。
答案 2 :(得分:0)
我发现以下命令对我有效。
visualvm -J-Duser.home =%HOME%
另外,我需要将 -Duser.home =%HOME%添加到我的app启动命令中。
我已经定义了nbprofile.home和userdir,但是当Profiler针对我的应用运行时,我仍然收到错误: Profiler代理错误:无法创建目录\ vmware-host \ Shared Folders.nbprofiler 。
我发现Profiler使用的是我的app定义的user.home而不是visualvm定义的。似乎都需要两者。