Can't install on Ubuntu 20.04: missing Java 15

For quite some time Java is open source und the OpenJDK project. Oracle is no longer the only company publishing a compiled binary of the Java Development Kit / Runtime Environment.
AdoptOpenJDK is one of many alternative binaries.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
– Benno Rice

@brutus5000 said in Can't install on Ubuntu 20.04: missing Java 15:

For quite some time Java is open source und the OpenJDK project. Oracle is no longer the only company publishing a compiled binary of the Java Development Kit / Runtime Environment.
AdoptOpenJDK is one of many alternative binaries.

Thank you for your insights, the wiki however states the following (article about setting up faf on linux, figure 5):

"Note: The client doesn't work with other Java versions."

I've tried with various Java implements, they all fail to work with faf's client. Here's what it says when trying to run the client by console prompt:

"No suitable Java Virtual Machine could be found on your system.
The version of the JVM must be 15.
Please define INSTALL4J_JAVA_HOME to point to a suitable JVM."

On windows the client is packaged with the adoptOpen java 15 so it may be that the environment variable is not properly set

Install the openjdk-15-jre package instead.

@askaholic said in Can't install on Ubuntu 20.04: missing Java 15:

Install the openjdk-15-jre package instead.

Same problem as with the oracle one, Openjdk isn't available anymore:

"Note, selecting 'oracle-java16-installer' instead of 'openjdk-15-jre'"

Not sure about the ubuntu package but for Arch\Manjaro you need to edit the downlords-faf-client script to correctly point to your java 15 install.

howto.png

Change INSTALL4J_JAVA_HOME to wherever your java is.

@nathmate

Thanks for the advice, but as I said the problem isn't that the client isn't correctly pointed to the correct java install, but rather the fact that I can't install java 15, for there isn't any suitable installer found in the repositories.

For instance if I try to install java 15 (doesn't matter if oracle or open), I always get forwarded to the newer release. The client however insists on the outdated version 15, and refuses to start with a newer implementation.

I moved away from Ubuntu pretty quickly because the PPA system never worked very well for me.

You could just untar this somewhere and point the client to it. https://jdk.java.net/15/

@nathmate said in Can't install on Ubuntu 20.04: missing Java 15:

I moved away from Ubuntu pretty quickly because the PPA system never worked very well for me.

You could just untar this somewhere and point the client to it. https://jdk.java.net/15/

Thanks for the advice. I've downloaded the archive and extracted the contents to /usr/lib/jvm. Afterwards I issued the "INSTALL4J_JAVA_HOME" command and pointed towards the folder. When checking the version with "java -version", it stills says I'm running java 16.

However, starting the FAF client in the terminal after linking the appropriate java folder suddenly works!

Glad to hear it.

"java -version", it stills says I'm running java 16.

That would be because you still have whatever other java you had installed in your path environment variable (echo $PATH if you're curious) but the openjdk15 archive you extracted isn't. Openjdk15 won't interact with the rest of your system at all unless you explicitly tell something to, like you have with the FAF client. Adding the java install path to the path environment variable is the sort of thing packages usually do but since you 'manually' installed openjdk15 here it didn't happen.

Sorry if I'm over explaining, just trying to "teach a man to fish" as it were.

@nathmate

You don't need to apologize, I'm glad you took the time to explain what was at fault here. Thank you for your help and your insights!

I guess I'm not the only one running into this issue for as long as the client remains on java 15. Could you reach out to those responsible for the linux guide? Maybe they could add a paragraph about potential issues with divergent java editions instead of a plain "the client wont work with different versions".

I'm still a bit confused why install4j is even relevant here. The linux version doesn't use the installer, does it? (I'm always running from source, I never tested this 😛 )

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
– Benno Rice

Well, the client delivers a script that starts the client. The script is generated by install4j

Soon™️