Error: Could not find or load main class application.Main Caused by: java.lang.NoClassDefFoundError: javafx/application/Application JDK 11

后端 未结 4 627
别那么骄傲
别那么骄傲 2020-12-29 00:51

I am stuck at a very basic problem. I have created a simple hello world program using JavaFX which works fine on JDK 1.8. But when I switch to JDK-11 it throws following exc

相关标签:
4条回答
  • 2020-12-29 01:16

    jdk 11 does not have javafx support. Oracle removed it. But you can add javafx to your project using Maven.

    0 讨论(0)
  • 2020-12-29 01:21

    I faced the same issue on debian after upgrading from stretch to buster, but now, everything is fine:

    java --version
    

    openjdk 11.0.4 2019-07-16

    To run a java-fx application using terminal, follow these steps:

    1. Install openjfx (if it is not already installed):
      sudo apt install openjfx

    2. List the javafx library location:
      dpkg-query -L openjfx
      The output should be like this:

    . /usr /usr/share /usr/share/doc /usr/share/doc/openjfx /usr/share/doc/openjfx/TODO.Debian /usr/share/doc/openjfx/changelog.Debian.gz /usr/share/doc/openjfx/copyright /usr/share/openjfx /usr/share/openjfx/lib /usr/share/openjfx/lib/javafx.properties /usr/share/openjfx/lib/javafx.base.jar /usr/share/openjfx/lib/javafx.controls.jar /usr/share/openjfx/lib/javafx.fxml.jar /usr/share/openjfx/lib/javafx.graphics.jar /usr/share/openjfx/lib/javafx.media.jar /usr/share/openjfx/lib/javafx.swing.jar /usr/share/openjfx/lib/javafx.web.jar

    1. Run the jar application by including the javafx path and modules:
      java --module-path $PATH_TO_OPENJFX-LIB --add-modules module_1,module_2,module_3,...,module_n -jar $PATH_TO_JAR_FILE

    Example:

    java --module-path /usr/share/openjfx/lib --add-modules=javafx.controls,javafx.fxml,javafx.base,javafx.media,javafx.web,javafx.swing -jar '/home/lotfi/Documents/MyAppfolder/my_application.jar'
    
    0 讨论(0)
  • 2020-12-29 01:23

    I had a similar error when executing a java application, I could not find some packages already installed, I located the path where the application was reading and there I added a symbolic link to the javafx library that I had installed.

    Example:

    user@server:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib$ sudo ln -s /usr/share/openjfx/lib/javafx.properties
    
    0 讨论(0)
  • 2020-12-29 01:41

    In Eclipse : run configurations -> arguments -> VM arguments :

    --module-path ${project_classpath:REPLACE_ME_WITH_YOUR_PROJECT_NAME} 
    
    --add-modules javafx.controls,javafx.fxml
    
    0 讨论(0)
提交回复
热议问题