jvmtop требует, чтобы переменная среды JAVA_HOME
указывала на действительный JDE.
Я попытался настроить JAVA_HOME
в последней строке ~ / .profile
:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin
, чтобы он был постоянным.
Однако, при выполнении: bash jvmtop. sh --profile
Я получил это: / usr / lib / jvm / java-11-openjdk-amd64 / bin, похоже, не JDK!
Update1: Я сделал путь к среде постоянным благодаря инструкциям из ответа. Ошибка по-прежнему отображается:
network@ns3009333:~/jvmtop$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64/bin
network@ns3009333:~/jvmtop$ bash jvmtop.sh --profile 7435
/usr/lib/jvm/java-11-openjdk-amd64/bin seems to be no JDK!
Обновление 2: Я попытался добавить следующие 3 команды в разных случаях в ~ / .profile:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
Сообщение все еще "похоже, не JDK!" (Я удостоверился, что снова вошел в систему).
Обновление 3: Также попытался установить
JAVA_HOME = / USR / Библиотека / JVM / Java-11-OpenJDK-amd64
в
nano jvmtop.sh
как видно из учебника я нашел. Те же отрицательные результаты.
Update4: Я подумал, что мой JDE, возможно, не был установлен должным образом, поэтому я переустановил Java JDK и JDE. В настоящее время у меня полностью установлена и подтверждена работа Java 11 (никаких других версий Java, только 11). Я также проверил, что папка / usr / lib / jvm / java-11-openjdk-amd64
, на которую указывает путь, действительно существует и имеет содержимое.
Я также попытался выполнить jvmtop.sh с помощью ./
и bash
Сообщение об ошибке совпадает.
Текущая настройка:
JAVA_HOME = / USR / Библиотека / JVM / Java-11-OpenJDK-amd64
добавлен к
nano jvmtop.sh
строка 10, а затем выполнить jvmtop.sh, указывающий на действительный идентификатор процесса.
Update5: Я наконец решил просто открыть билет github на jvmtop, и, конечно же, после того, как я это сделал, я обнаружил, что кто-то уже сделал это, по тому же вопросу: https://github.com/patric-r/jvmtop/issues/119
How to successfully run jvmtop to profile a Java Process on Ubuntu
First download and extract jvmtop, link: https://github.com/patric-r/jvmtop
jvmtop has no guarantee of working well with Java versions above 8. In order to make sure you are using Java 8:
apt install openjdk-8-jdk
You can see all java versions installed, and switch to one of them with:
update-alternatives --config java
Make sure you're using java 8.
Go to the directory where you downloaded and extracted jvmtop.
The JAVA_HOME environment variable must point to a valid JDK, for jvmtop to work. Easy way, Just:
nano jvmtop.sh
add to line 10:
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
or equivalent path to java 8.
Check for the process ID that you want to profile using command
ps -aux
Once you find out the process ID, run:
bash jvmtop.sh --profile <PID>
You can skip the pid and it will just profile all java processes.