visualvm 在 Ubuntu 15.10 和 Oracle JDK 上因 "No jdkhome found" 而失败
visualvm fails with "No jdkhome found" on Ubuntu 15.10 with Oracle JDK
我从 webupd8team/java
PPA 安装了 Oracle JDK,然后安装了 visualvm
包。启动 visualvm
时,我收到以下错误消息:
[beni:~]$ visualvm
No jdkhome found
我的 $JAVA_HOME
正确设置为 /usr/lib/jvm/java-7-oracle
。
此外,当使用 jdkhome
属性 集启动 visualvm
时,我得到同样的错误:
[beni:~]$ visualvm --jdkhome $JAVA_HOME
No jdkhome found
visualvm
检查以下三个目录是否有 JDK:
/usr/lib/jvm/java-7-openjdk-$ARCH
/usr/lib/jvm/java-8-openjdk-$ARCH
和
/usr/lib/jvm/default-java
来自 /usr/bin/visualvm
启动脚本:
visualvm_jdkhome=
for j in /usr/lib/jvm/java-7-openjdk-$ARCH /usr/lib/jvm/java-8-openjdk-$ARCH /usr/lib/jvm/default-java; do
if [ -x $j/bin/javac ]; then
visualvm_jdkhome=$j
break
fi
done
所以让 /usr/lib/jvm/default-java
成为 $JAVA_HOME
的符号链接,然后 visualvm
会找到正确的 JDK.
cd /usr/lib/jvm
sudo ln -Tsf java-7-oracle default-java
在我的例子中,即使是 default-java 的符号链接也没有解决问题。
为了修复,我做了:
编辑 jvisualvm 并将任何 "trash" 添加到 jdkhome
变量
$ sudo vi /usr/bin/jvisualvm
jdkhome=/tmp
然后启动程序传递参数:
/usr/bin/jvisualvm --jdkhome /usr/lib/jvm/myJava7
注意:今天(2016 年),我的版本仅适用于 java7
更新:现在,在 2017 年,使用版本 1.3.8,它与 Java 8 一起工作。但是我需要添加 visualvm_jdkhome=/tmp
,在/usr/bin/visualvm
我从 webupd8team/java
PPA 安装了 Oracle JDK,然后安装了 visualvm
包。启动 visualvm
时,我收到以下错误消息:
[beni:~]$ visualvm
No jdkhome found
我的 $JAVA_HOME
正确设置为 /usr/lib/jvm/java-7-oracle
。
此外,当使用 jdkhome
属性 集启动 visualvm
时,我得到同样的错误:
[beni:~]$ visualvm --jdkhome $JAVA_HOME
No jdkhome found
visualvm
检查以下三个目录是否有 JDK:
/usr/lib/jvm/java-7-openjdk-$ARCH
/usr/lib/jvm/java-8-openjdk-$ARCH
和/usr/lib/jvm/default-java
来自 /usr/bin/visualvm
启动脚本:
visualvm_jdkhome=
for j in /usr/lib/jvm/java-7-openjdk-$ARCH /usr/lib/jvm/java-8-openjdk-$ARCH /usr/lib/jvm/default-java; do
if [ -x $j/bin/javac ]; then
visualvm_jdkhome=$j
break
fi
done
所以让 /usr/lib/jvm/default-java
成为 $JAVA_HOME
的符号链接,然后 visualvm
会找到正确的 JDK.
cd /usr/lib/jvm
sudo ln -Tsf java-7-oracle default-java
在我的例子中,即使是 default-java 的符号链接也没有解决问题。 为了修复,我做了:
编辑 jvisualvm 并将任何 "trash" 添加到 jdkhome
变量
$ sudo vi /usr/bin/jvisualvm
jdkhome=/tmp
然后启动程序传递参数:
/usr/bin/jvisualvm --jdkhome /usr/lib/jvm/myJava7
注意:今天(2016 年),我的版本仅适用于 java7
更新:现在,在 2017 年,使用版本 1.3.8,它与 Java 8 一起工作。但是我需要添加 visualvm_jdkhome=/tmp
,在/usr/bin/visualvm