запуск профиля jvmtop и переменной среды JAVA_HOME

Примечание: Кажется, что jvmtop просто не работает с Java 11. Я хотел бы также примите альтернативные опции профилирования процессов Java для Ubuntu 20.04 (только для терминала) и Java 11, если инструкции для установки и выполнения понятны.

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

0
задан 16 June 2020 в 00:35

1 ответ

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.

0
ответ дан 19 June 2020 в 21:28

Другие вопросы по тегам:

Похожие вопросы: