在运行 Ubuntu 20.04.2 和 Pop!_OS 21.04 的两台 PC 上使用 JRE 11 时,BioX 无法启动。
然而,BioX 程序在 openSUSE(Leap 15.2 和 15.3)中运行良好,没有问题,我分别用 Ubuntu 20.04 和 Pop!_OS 21.04 替换了它们。
错误消息以“发生了非法反射访问操作”开头。
(base) bcramer@curie:~/Biographics_Lab-3R/BioX$ java -jar BioX4.6.13.jar
llb: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/home/bcramer/Biographics_Lab-3R/BioX/lib/gluegen-rt.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Inconsistency detected by ld.so: dl-lookup.c: 111: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed!
答案1
BioX 与 Java 11 不兼容
您必须使用较旧的(仍受支持的)JRE 8。您仍然可以从 Ubuntu 存储库安装此版本的 JRE。
要安装 JRE 或 Java 运行时环境,您可以使用apt
包管理器从终端获取它:
$ sudo apt update
$ sudo apt install openjdk-8-jre
如果您已经安装了另一个 JRE,在某些情况下,这个较新的 JRE 仍将用作。相反,您可以选择使用中的二进制文件java
来使用特定的 JRE 运行 Java 软件。在这种情况下,要使用 amd64 上的 JRE 8 启动 BioX,请在存储 BioX 的目录中运行以下命令:java
/usr/lib/jvm
$ /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar BioX4.6.13.jar
您可以将其保存为 shell 脚本以节省时间,或者可以创建.desktop
快捷方式,这样您就可以从文件管理器中双击。
以下是BioX在Xubuntu 21.04上运行的截图: