Рейтинг:0

BioX 4.6 не запускается: «Произошла незаконная операция отражающего доступа».

флаг vu

BioX не запускается при использовании JRE 11 на двух компьютерах с Ubuntu 20.04.2 и Pop!_OS 21.04.

Однако программа BioX без проблем работает в openSUSE (Leap 15.2 и 15.3), которые я заменил на Ubuntu 20.04 и Pop!_OS 21.04 соответственно.

Сообщение об ошибке начинается с «Произошла недопустимая операция отражающего доступа».

(база) bcramer@curie:~/Biographics_Lab-3R/BioX$ java -jar BioX4.6.13.jar 

llb: Произошла незаконная операция рефлексивного доступа
ВНИМАНИЕ: Незаконный рефлексивный доступ со стороны com.jogamp.common.os.NativeLibrary$3 (file:/home/bcramer/Biographics_Lab-3R/BioX/lib/gluegen-rt.jar) к методу java.lang.ClassLoader.findLibrary(java. lang.String)
ПРЕДУПРЕЖДЕНИЕ. Пожалуйста, сообщите об этом сопровождающим com.jogamp.common.os.NativeLibrary$3.
ПРЕДУПРЕЖДЕНИЕ. Используйте --illegal-access=warn, чтобы включить предупреждения о дальнейших незаконных операциях отражающего доступа.
ВНИМАНИЕ! Все незаконные операции доступа будут запрещены в будущем выпуске.
Несоответствие обнаружено ld.so: dl-lookup.c: 111: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (версия->имя файла, карта)' не удалось!
galexite avatar
флаг pk
Не могли бы вы попробовать [этот ответ] (https://stackoverflow.com/a/55849728)? Похоже, вы используете разные версии Java в Ubuntu и openSUSE. Вы также можете увидеть, какую версию Java вы используете, запустив `java -version`, хотя обратите внимание, что Java 8 на самом деле будет отображаться как `java version "1.8.0_xx"`.
galexite avatar
флаг pk
Вы можете игнорировать шаги `eclipse.ini` в этом ответе, потому что они относятся к программе, упомянутой в другом вопросе (Eclipse IDE).
флаг vu
Привет, спасибо за ваши замечания. Не странно ли, что два ПК с новой установленной ОС, соответственно Ubuntu и POP (на основе Ubuntu), выдают одно и то же сообщение об ошибке? Я проверил версию java на обоих ПК, и на обоих установлена ​​java v. 11.1. в OpenSUSE у меня стояла старая версия Java, точно не помню версии, может java 1.8. Я также перешел на Java до версии 1.8 на одном из компьютеров, но все стало еще хуже. Я установлю Ubuntu с более старой версией, может быть, 18.04 на третьем ПК (теперь с Windows), хотя я сомневаюсь, что это решит проблему. Я дал вам знать.
galexite avatar
флаг pk
Pop!_OS будет использовать репозитории пакетов Ubuntu для таких пакетов, как Java, так что совсем не неожиданно увидеть одно и то же сообщение об ошибке — вы используете один и тот же идентичный двоичный файл на обоих! Я не думаю, что есть необходимость понижать версию Ubuntu...
galexite avatar
флаг pk
Насколько хуже происходит понижение версии, есть ли другое сообщение об ошибке или программное обеспечение непригодно для использования по-другому?
флаг vu
Привет, вы правы, понижение версии Java или Ubuntu не является решением. На очень старом ПК я установил OpenSUSE Leap15.2 и Java 1.11, BioX открывается, но я получаю точно такое же сообщение об ошибке.К сожалению, я не могу использовать этот ПК, только для подготовки молекулярных структур в BioX, но ничего не вычисляю, как уже упоминалось, это старый стандартный ПК. BioX является открытым исходным кодом. Для установки требуется только разархивировать файлы. Если бы вы могли протестировать его на своем ПК (вам не нужно его запускать), возможно, мы придем к решению. www.biograf.ch --> Программное обеспечение --> Загрузите любую версию для Linux. Спасибо
флаг vu
Пожалуйста, взгляните на https://github.com/processing/processing4/issues/22 См. -> Комментарий: «Это исходит от самого JOGL ...». BioX поставляется с jogl. Без понятия, что можно сделать.
galexite avatar
флаг pk
Я считаю, что решил проблему, BioX отлично работает с пакетом OpenJDK JRE 8, который все еще поддерживается. Есть способ заставить его сделать это тоже. Пожалуйста, смотрите мой ответ.
Рейтинг:1
флаг pk

BioX не совместим с Java 11

Вы должны использовать старую (все еще поддерживаемую) JRE 8. Вы все еще можете установить эту версию JRE из репозиториев Ubuntu.

Чтобы установить JRE или Java Runtime Environment, вы можете получить его из терминала, используя подходящий менеджер пакетов:

$ sudo подходящее обновление
$ sudo apt установить openjdk-8-jre

Если у вас уже установлена ​​другая JRE, в некоторых случаях эта более новая JRE по-прежнему будет использоваться как Ява. Вместо этого вы можете запустить свое программное обеспечение Java с использованием определенной JRE, используя Ява двоичный в /USR/библиотека/JVM вместо. В этом случае, чтобы использовать JRE 8 на amd64 для запуска BioX, выполните следующее в каталоге, в котором хранится BioX:

$ /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar BioX4.6.13.jar

Вы можете сохранить это как сценарий оболочки, чтобы сэкономить время, или вы можете создать .рабочий стол ярлык, который позволяет дважды щелкнуть из файлового менеджера.

Ниже приведен скриншот BioX, работающего на Xubuntu 21.04:

Скриншот BioX на Xubuntu 21.04

флаг vu
Привет, ты решил проблему. СПАСИБО.
флаг vu
Примечание.: Остается открытым вопрос (на него не нужно отвечать, вы уже внесли свой вклад): Почему BioX и остальные модули (Yeti и т. д.) работают с OpenSUSE Leap 15.2 с java 1.11, а не в убунте?
galexite avatar
флаг pk
@ Бруно, боюсь, я понятия не имею. Возможно, дистрибутивы openSUSE имеют какой-то уровень совместимости? Я думаю, что в старых JRE есть такой слой. Хотя я рад, что это исправлено. Не могли бы вы отметить этот ответ как решение? Это можно сделать, нажав на галочку в левом верхнем углу ответа.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.