Как DCEVM исправляет JVM?

Как DCEVM исправляет JVM, чтобы ее можно было запускать как в обычном режиме, так и в режиме XXaltjvm? Что он делает с обычным libjvm.so/jvm.dll/libjvm.dylib?

Из Установка DCEVM


person Nfff3    schedule 08.02.2021    source источник


Ответы (1)


DCEVM не исправляет исходную JVM.
Он устанавливает другую версию libjvm.so под $JDK_HOME/lib/dcevm.

-XXaltjvm поддерживается обычной программой запуска Java из коробки. Если указано, программа запуска ищет libjvm.so в альтернативном каталоге:

  • если значение -XXaltjvm начинается с /, оно рассматривается как абсолютный путь альтернативной JVM;
  • в противном случае каталог относится к домашнему JDK: $JDK_HOME/lib/<altjvm>
person apangin    schedule 08.02.2021
comment
Меня тоже интересовал этот вопрос. Из любопытства, не знаете ли вы, можно ли исправить существующую JVM, если она поставляется с символами отладки (так что теоретически мы можем заменить функции C/C++ в исполняемом файле, потому что мы знаем, где они расположены, и мы знаем версию JVM)? Насколько сложно было бы это сделать? Некоторые функции не сильно меняются от одной версии Java к другой.... - person Csa77; 08.02.2021
comment
@ Csa77 Технически это возможно, хотя я не думаю, что это хорошая идея. - person apangin; 08.02.2021