0

我正在 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 网络驱动器上并使其正常工作?

4

3 回答 3

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 

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

于 2011-09-09T21:06:37.093 回答
0

尝试禁用虚拟机的共享。

它适用于我在 Fusion 中禁用共享的 Windows 7 x86(共享是提供您无法写入的文件夹的机制)。

于 2011-09-09T15:28:05.417 回答
0

我发现以下命令对我有用。

visualvm -J-Duser.home=%HOME%

另外,我需要将-Duser.home=%HOME%添加到我的应用程序启动命令中。

我已经定义了 nbprofile.home 和 userdir,但是当 Profiler 针对我的应用程序运行时,我仍然收到错误:Profiler Agent Error: Could not create directory\vmware-host\Shared Folders.nbprofiler

我发现 Profiler 使用的是我的应用程序定义的 user.home,而不是使用 visualvm 的。两者似乎都需要。

于 2013-07-16T19:43:22.430 回答