jvisualvm去哪里了?


问题内容

我正在运行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?


问题答案:

似乎是链接的混合;/ 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