18

我从webupd8team/javaPPA 安装了 Oracle JDK,然后安装了该visualvm软件包。启动时visualvm,我收到以下错误消息:

[beni:~]$ visualvm
No jdkhome found

$JAVA_HOME的正确设置为/usr/lib/jvm/java-7-oracle.

此外,从属性集开始visualvmjdkhome,我得到同样的错误:

[beni:~]$ visualvm --jdkhome $JAVA_HOME
No jdkhome found
4

2 回答 2

37

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
于 2016-01-02T13:00:27.823 回答
1

在我的情况下,即使 default-java 的符号链接也没有解决问题。为了修复,我做了:

编辑 jvisualvm 并将任何“垃圾”添加到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中添加

于 2016-09-21T16:58:48.610 回答