Как принудительно отобразить освобождение памяти MappedByteBuffer в Java 11 - java.lang.ClassNotFoundException: sun.miscJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как принудительно отобразить освобождение памяти MappedByteBuffer в Java 11 - java.lang.ClassNotFoundException: sun.misc

Сообщение Anonymous »

В настоящее время я переношу код приложения с Java 8 на Java 11. Раньше мы использовали внутренний класс sun.misc.Cleaner, а теперь при запуске приложения я получаю исключение java.lang.ClassNotFoundException: sun.misc. Чище.
Когда я погуглил, я обнаружил, что мне следует использовать java.lang.ref.Cleaner, чтобы сделать то же самое, но я хочу быть уверен, что это правильный подход, поскольку я читал, что потребуется активация внутреннего модуля в моей JVM.
Не могли бы вы мне помочь?

Код: Выделить всё

* Clean a MappedByteBuffer
. Method to call to delete memory of the file and free the resources
* @param pByteBuffer Buffer to clean
*/
private void freeByteBuffer(ByteBuffer pByteBuffer) {
try {
Method lCleanerMethod = pByteBuffer.getClass().getMethod("cleaner");
lCleanerMethod.setAccessible(true);
Method lCleanMethod = Class.forName("sun.misc.Cleaner").getMethod("clean");
lCleanMethod.setAccessible(true);
lCleanMethod.invoke(lCleanerMethod.invoke(pByteBuffer));
} catch (Exception lEx) {
logger.error(KernelError.FREE_MEM, idefixComponentName, lEx);
}
}

Я ожидал, что код будет работать так же, как указано в спецификации программного обеспечения.


Подробнее здесь: https://stackoverflow.com/questions/790 ... va-11-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»