Score:0

BioX 4.6 won't launch: "An illegal reflective access operation has occurred."

vu flag

BioX won't launch when using JRE 11 on two PCs running Ubuntu 20.04.2 and Pop!_OS 21.04.

The BioX program however works fine without problems in openSUSE (Leap 15.2 and 15.3) which I replaced with Ubuntu 20.04 and Pop!_OS 21.04, respectively.

The error message starts with "An illegal reflective access operation has occurred."

(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!
galexite avatar
pk flag
Could you try [this answer](https://stackoverflow.com/a/55849728)? It looks like you are using different versions of Java on Ubuntu and openSUSE. You can also see which version of Java you are using by running `java -version`, though note that Java 8 will actually appear as `java version "1.8.0_xx"`.
galexite avatar
pk flag
You can ignore the `eclipse.ini` steps in that answer, because those are specific to the program mentioned in that other question (Eclipse IDE).
vu flag
Hi, Thank you for your remarks. Isn't it weird that two PCs with new installed OS, respectively Ubuntu and POP (Ubuntu based) give the same error message? I checked the java version on both PCs and both have java v. 11.1. in OpenSUSE I had an older Java version, I don't remember exactly the versions, maybe java 1.8. I also downgraded to Java to 1.8 in one of the PCs but things became worse. I will install Ubuntu with an older version, maybe 18.04 in a third PC, (now with windows) although I doubt that this will solve the problem. I let you know.
galexite avatar
pk flag
Pop!_OS will use the Ubuntu package repositories for packages like Java, so it’s not at all unexpected to see the same error message—you’re running the same, identical binary on both! I don’t think there is a need to downgrade your Ubuntu version though…
galexite avatar
pk flag
How is downgrading worse, is there another error message, or is the software unusable in another way?
vu flag
Hi, You are right, downgrading Java or Ubuntu is not a solution. In a very old PC I installed OpenSUSE Leap15.2 and Java 1.11, BioX opens, but, I receive exactly the same error message. Unfortunately I can not use this PC, only to prepare the molecular structures in BioX but not compute anything, as mentioned it is an old standard PC. BioX is an opensource. The installation requires only to unzip the files. If you could test it in your PC (you don't need to run it), maybe we come to a solution. www.biograf.ch --> Software --> Download any one under Linux version. Thank you
vu flag
Please take look at https://github.com/processing/processing4/issues/22 See-->Comment:"This comes from JOGL itself..." . BioX is supplied with jogl . No idea what could be done.
galexite avatar
pk flag
I believe I have resolved the problem, BioX runs fine with the OpenJDK JRE 8 package, which is still supported. There is a way of forcing it to do so, too. Please see my answer.
Score:1
pk flag

BioX is not compatible with Java 11

You must use the older (still supported) JRE 8. You can still install this version of the JRE from the Ubuntu repositories.

To install the JRE, or Java Runtime Environment, you can fetch it from the terminal using the apt package manager:

$ sudo apt update
$ sudo apt install openjdk-8-jre

If you already have another JRE installed, in some cases, this newer JRE will still be used as java. Instead, you can choose to run your Java software using a specific JRE by using the java binary in /usr/lib/jvm instead. In this case, to use JRE 8 on amd64 to launch BioX, run the following in the directory in which BioX is stored:

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

You can save this as a shell script to save time, or you can create a .desktop shortcut, which allows you to double click from the file manager.

The following is a screenshot of BioX running on Xubuntu 21.04:

BioX screenshot on Xubuntu 21.04

vu flag
Hi, You solved the problem. THANK YOU.
vu flag
Remark.: The open question that remains (you don't need to answer it, you have made your contribution already): Why is BioX and the rest of the modules (Yeti, etc) working with OpenSUSE Leap 15.2 with java 1.11 and not in Ubuntu ?
galexite avatar
pk flag
@Bruno, I’m afraid I have no idea. It’s possible that the openSUSE distributions have some sort of compatibility layer? I think older JREs have such a layer. I’m glad it’s fixed though. Could you mark this answer as the solution? You can do this by clicking the tick in the top left corner of the answer.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.