24

I have Java 8 and Ubuntu 18.04. I'm using NetBeans and when tried to make some program, it couldn't be done because JavaFX is missing.

I installed Java JDK with NetBeans from Oracle's site and thought everything is included but obviously I didn't check it well.

What should I do, what should I install? I'm not so good at this and don't know if problem is with Ubuntu or Java. :(

1

5 Answers 5

27

In the Ubuntu 16.04 and later default repositories JavaFX is packaged as a separate package named openjfx. To install it in Ubuntu 18.04, open the terminal and type:

sudo apt install openjdk-8-jdk openjfx

The openjfx package can also be installed from the default repositories in all currently supported versions of Ubuntu.

Check that JDK 8 is selected as the default Java version in Netbeans -> Tools -> Options -> Java -> Nashorn tab -> click the Manage Platforms button -> click the Add Platform button -> click the radio button marked Java Standard Edition -> click the Next button -> browse to /usr/lib/jvm/java-8-openjdk-amd64 and select it as the default Java version.

Optionally you can install openjdk-11-jdk instead of or alongside openjdk-8-jdk. openjfx works with both openjdk-8-jdk and openjdk-11-jdk in Netbeans in Ubuntu 18.04. I am using Netbeans 8.2 10.0 in Ubuntu 18.04.

12
  • Thanks, your commands work but still with my java.io library I get the error Exception in thread "main" java.lang.IllegalStateException: Toolkit not initialized ...I don't know why
    – maria
    Nov 14, 2018 at 17:49
  • @Mara I'm sorry, I found the error you got was in my JavaFX code because I didn't copy all the code to the end in Pastebin the first time that I uploaded it. I left out the two curly braces at the end the first time I uploaded it. I uploaded the code again here. The name of my JavaFX project in Netbeans is HelloWorldFX.
    – karel
    Nov 15, 2018 at 0:26
  • 1
    JavaFX works for me on 18.04 only after installing JDK 8 AND changing the project SDK to 8 (doesn't want to work on SDK 10) in IntelliJ.
    – Line
    Feb 6, 2019 at 9:04
  • It must be a JDK paths issue in IntelliJ because JDK 8 and 11 both work alongside each other in Netbeans in Ubuntu 18.04 with the same JavaFX package for both of them.
    – karel
    Feb 6, 2019 at 9:27
  • I checked my whole hard drive but I can't seem to find a javafx distribution after installing openjfx. it's not in /usr/lib/jvm/<jdk>/jre/lib/ext/ where I found it to be on other devices such as my laptop running manjaro. :/ Jun 18, 2019 at 9:42
4

I think the easiest way is to install sdkman. Once installed, check for all the available candidates:

$ sdk list java

which will show a wide variety of options. You may select one with the FX suffix. In my case I can see something like this:

 Azul ZuluFX   |     | 11.0.2       | zulufx  |            | 11.0.2-zulufx       
               |     | 8.0.202      | zulufx  |            | 8.0.202-zulufx      
 BellSoft      |     | 12.0.2       | librca  |            | 12.0.2-librca       
               |     | 11.0.4       | librca  |            | 11.0.4-librca       

So, you can install it using this command:

$ sdk install java 11.0.2-zulufx   

Or,

$ sdk install java 8.0.202-zulufx # if you want java 8

And you are good to go! I hope this helps! :)

1

This issue can be fixed by adding the openjfx path and modules as arguments when running the javafx application, I already posted the solution on this link.
Good luck
Lotfi

0

I had the same problem. I installed openjdk, but it wasn't compatible with openjfx, since the only version available is openjfx 11.

So i searched for a while and stumbled across ZuluFX. I installed it with sdkman, which you can download from their website. After installing sdkman, just install zulufx.

$ sdk install java 8.0.202-zulufx

Your $JAVA_HOME should be the path where sdk man is installed -> /home/valentin/.sdkman/candidates/java/current

Now you can switch you JDK to that path in Netbeans and it should just work fine!

0

Liberica JDK "full" contains JavaFX. There are 8, 11 and latest versions as .tar.gz ans as .deb packages:

https://bell-sw.com/java.html

It is also available in sdkman as mentioned above (with updates).

For regular apt updates there is an official apt repository:

https://www.bell-sw.com/pages/repositories/#apt

To install version 11 containing FX use

sudo apt install bellsoft-java11-full

https://bell-sw.com/pages/repositories/#packages-versioning

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .